fix(scheduling): Correct the ConditionMachineOf behavior (mostly)

This defines ConditionMachineOf as a live scheduling relationship. The system should be guaranteeing units with a target-state of 'launched' are actually 'launched' after migrating around the cluster, but that's a bit bigger than the scope of ConditionMachineOf. That will be addressed in a subsequent PR.

Here's what I did at a high level:
* Stop creating job offers in the agents, just clear a job's target
* Add EventJobUnscheduled, facilitating communication of need to reschedule
* Only clear a job's target if it the target is known

Fix #287