feat(scheduling): Re-bid for Jobs after Peers are scheduled
fix(corectl): fail corectl-start on bad/nil payloads
refactor(leadership): Replace locks with leadership

* the previous lock model was allowing the same machine to race with
  when resolving several concurrent events
* the new leadership model allows a single caller to successfully
  take leadership for a given item
chore(logging): moar logging!
refactor(logging): Elevate etcd debug logs to verbosity level 3
feat(machine): Configure/publish metadata with Machine
refactor(engine): Remove dead scheduler code
chore(comment): add FIXME comment
refactor(job/registry): Store full Job objects in Registry

Future work will add more data to the Job objects, so it is
no longer possible to simply store the Payload of a Job.
feat(requirements): Define metadata requirements for Jobs

* A client of corectl may start jobs with a new flag, --require. This allows
  the client to define a key with multiple acceptable values.
* The Agent will receive the requirement and assert that it's corresponding
  value for the key is found in the list of acceptable values.