Issue #27 A shot at handling lifecycle properly
 - Actually added the lifecycle methods to all API interfaces
 - Added start() to Service, and fall offs of that.
 - State transition failing now throws StateTransitionException
 - Tries to rewind the starting or stopping of "things"