Add state machine.

Can only handle basic state transitions.
Add hook for actions to state.

The state machine needs to be able to handle any number of actions when
online. It can now accept an object of actions that are attached to the
online state hander. Next step will be to add an action object that
registers new actions and marshalls them into this object structure.
WIP, thinking about where actions get attached to state
WIP more scribbles
TODO: remove servicesManager#get
Add basic tests to play action
Flesh out action register (untested)
Add proposed device object
Test Actions Register
Move physicalUI to /devices. Add bindToState step
Add players object for device
Add split between objects returned from system and binding functions
Add shutdown object
Whitespace & cleanup
Add fake Radiodan client objects
Finish play action tests
Add basic actions
Integrate device object into web UI
remove old state objects
Test play state transisions to online