Connect RocketDevice with RocketController.

Device's can listen for events that are fired by controllers and as
devices have direct reference to attached controller, they can
also change controller's status (stop/play).

TimeController was hardcoded into Rocketpower as a test controller for
now.
Implement Rocketpower.getValue: easy access to track's current value
SocketDevice: implement controller <-> Rocket status syncing

Rocket is now notified when controller's status changes, and
controller's status is changed correctly according to commands coming
from Rocket.
Refactor bloated command handling in SocketDevice
SocketDevice: improve logging in command handling