Allow state machines to have a context

Fixes #10 

Makes it so every state machine must specify a context.  Discussion welcome on whether this is the best way of implementing this enhancement.