Use map to determine valid transitions

This is a first step towards supporting multiple 'from' and 'to' states.
Allow multiple 'to' values
Allow multiple 'from' values
Unify assert style in specs
Create event methods only once
Initialize state machine with empty events table

It will be filled in the for loop, there is no need to copy the events
table from the options.
Merge pull request #3 from theGoodEvil/multiple_from_to

Support multiple "from" and "to" states