fix(agent): purge state when offer resolved elsewhere

If a job offer is resolved elsewhere, the state is no longer
useful to the local Agent. It should be removed to ensure
it does not conflict with future attempts to run future
revisions of a given job.
fix(agent): clear empty entries when dropping peers

When a job no longer has any peers, it does not need to
be tracked. This will help keep the memory usage of the
fleet agent under control.
test(functional): long-running fixtures

It helps debugging if the units used in functional
testing never exit, acting more like long-running
services.
fix(agent): agent initialization

Wait for the agent to successfully push its state to
the Registry before starting normal operation. This
prevents the watchers from losing events during startup.
refactor(agent): remove duplicated code
test(functional): Fix cluster member naming

Creating multiple members would arbitrarily pad
the numbering as each member was created. Tracking
the initial member count rather than counting the
number of members in each iteration fixes this.
Merge pull request #280 from unihorn/58

chore: gofmt all go files
feat(test): test code format
test(fleetctl): fix broken tests
Merge pull request #274 from unihorn/57

feat(test): test code format
test(functional): use richer unit state object
test(functional): Add functional scheduling tests
test(functional): break out unit ssh action tests
test(functional): Add unit restart test
feat(fleetctl): Add logging to start command
feat(fleetctl): say something when stopping units
feat(fleetctl): log/print things in fleetctl destroy
fix(fleetctl): Remove unused -verify flag
refactor(fleetctl): factor out payload submission code
Merge pull request #277 from bcwaldon/agent-fixes

Agent-related refactoring and bugfixes