Reapply jenkins-job-builder workaround on charm upgrade
The last charm release made some changes to the code we inject into
/etc/default/jenkins, but provided no mechanism to re-trigger the
injection. Add a hook to do it on charm upgrade.
Block unnecessary reactions when the charm is stopping
If a user removes the scalebot application (`juju remove-application`), juju
will trigger the stop hook. We provide a stop hook which destroys the lab
controller, freeing up resources in the cloud. However, the charm continues
to react to other events, which can lead to it *re*-bootstrapping a
controller. This can lead to orphaned resources in the cloud.
Introduce a new pair of states[*], "scalebot.go" and "scalebot.stop", which
are intended to be mutually exclusive. The charm will start out and remain
in the "scalebot.go" state until the stop hook is called, at which point
we'll transition to the "scalebot.stop" state. Add guards to prevent
various reactions from executing in "scalebot.stop".
[*] The "state" API has been apparently deprecated for a "flag" API for
some time. We should switch over to the "flag" API - but I'll leave
that for another time.
Bionic has python package dependency issue for scalebot. In the
meantime, the conflict is incompatible with Focal. Instead of supporting
both distrobutions, we decided to stop supporting Bionic and focusing on
Focal.
The main goal here is to correct spelling of "bootstrapping", but I also
decided to shorten the message because I'm not sure the second sentence
was adding to the first.