Add Cube controller events

Refactor code:

* Add Cube Registry to keep track of configured cubes
* Add Cube object for interactions with a single Docker Container
* Split between Observing Container lifecycles, executing Controller
events and Object creation

fixes #19
Tho that still won't make them all equal. 

StaticAwaitStrategy -> A section of the CubeConfig
NativeAwaitStrategy -> Executor and Id
PollingAwaitStrategy -> Cube