Protection against parent state not existing

Fixes #20 

When calling the StateBuilder.childOf(...) method, if the specified
parent state does not exist yet in the state machine, a
NullPointerException will be thrown.  This change protects against the
null pointer and throws a more specific StateMachineException instead
which describes the problem and how to fix it.