Add levels to log output
Initial boxrunner that acquires and releases a lock

The state machine has the states 'competing', 'running', 'sleeping' and
'stopping'.

In the competing state it tries to acquire a consul lock. Only if the
lock is acquired, can the running state be entered.

In both the sleeping and the running states the lock is watched for
changes, if the lock is released the competing state is entered again.

The running state simulates a (flaky) job that terminates after a
timeout.

The stopping state releases the lock (cleanly) and re-enters the
competing state.

The boxrunner also serves a simple HTTP healthcheck on a configurable
port, which is used as a check for the locking session. This causes the
lock to automatically be released when the boxrunner stops running.