refactor(functional-tests): Modify the Cluster interface

* Add CreateMember, DestroyMember, Members, MemberCommand
* Make CreateMultiple a helper - CreateNClusterMembers
* Rename DestroyAll to Destroy
fix(functional-tests): Correctly identify zero machines
test(functional): Refactor smoke tests into specific cluster tests
Merge pull request #290 from bcwaldon/cluster-testing

Moar functional testing
fix(agent) + chore(fleet): remove redundant RefreshState() from agent startup,
better error handling and consistency
- Import glog as log in fleet.go, as it is everywhere else
- Propagate errors from server.go instead of just panicking
- Handle bad configuration file options better
- Use glog to exit on fatal error, rather than syscalling
Merge pull request #289 from jonboulle/master

Remove double RefreshState on fleet startup. Various other logging and error handling cleanup.
test(functional): test single-node shutdown
fix(agent): Stop jobs when purging Agent

Fix #292
Merge pull request #293 from bcwaldon/node-shutdown-testing

Fix #292 & further testing of node shutdown
fix(registry): nice presentation for job existence
docs(contributing): merge changes from template and split out DCO
Merge pull request #295 from jonboulle/master

docs(contributing): merge changes from template and split out DCO
fix(agent): Only call daemon-reload if necessary

Calling daemon-reload in systemd can cause open sytemd jobs to
stall. We can minimize the impact this has on fleet my limiting
our usage of daemon-reload.
fix(agent): Simplify purging jobs

The Agent.StopJob function is intended to be triggered by users and has
a very destructive impact on the cluster. When calling Agent.Purge, the
churn created by StopJob causes jobs that need to be rescheduled to
completely stop. Manually purging state and ignoring peers allows jobs
to reliably get rescheduled.
test(functional): Ensure ConditionMachineOf carries through reboots
refactor(agent): Remove unnecessary call to VerifyJob in Purge
Merge pull request #296 from bcwaldon/fix-broken-things

Fix rescheduling of jobs in response to machine death
chore(release): Bump version to v0.2.0+git
fix(build-release): Drop multi-OS support from build-release

Cross-compiling is broken, so the build-release script can
be simplified down to build just for the parent OS.
Merge pull request #301 from bcwaldon/update-build-release

fix(build-release): Drop multi-OS support from build-release