Enables managing a local user on macOS.
Network users are not tested/unsupported at this time. Shared iPad probably isn't either.
When a new managed user is created, the existing managed users from the device are deleted. This is because there can only be one managed user per macOS device so the old users are deleted.
This change enables targeting a user id instead of a device by using the UserID field (the users GUID) in push notifications and MDM commands.
Closes#274Closes#247Closes#248Closes#208
according to the library docs, a nil context should never be passed
context.TODO() returns an empty context value instead: https://golang.org/pkg/context/
* Send APNS push to UDID after Commands being queued. In support of #100. Create a new protobuf & message type for post-queued commands. The push service listens for these and pushes to the devices as appropriate.
* Break out subscriber as method on Push
* Refactor event passing to use a struct
* Error on nil argument