refactor(job): Change type of Job.Payload to value

Clients of the Job model should never have to check if the Job has
a Payload. Remove the possibility for Payload to be nil by
using a JobPayload vs a *JobPayload.
refactor(event): Use BootID event/listener context

Wrapping the bootID in a MachineState was overkill and it opened
the door to clients of the event code trusting clearly untrue
information. This is rectified by simply not wrapping the bootID
with a fake MachineState.
Merge pull request #319 from bcwaldon/refactor

Payload & Event Refactoring