added trivial implementation of StartFlag
more tests, refactored startable facility to internally use StartFlags too

Moved all the start control logic to StartFlag, ensuring the important methods are virtual. That way the code can be extended to support any scenario imaginable, including the ones discussed with  @jfojtl (see #37)