Support multiple "from" states per event

If you can get from multiple states to a target state with the same
event, you can now define a list of from states, e.g.

walk = { from = { 'waiting', 'running' }, to = 'walking' }
Simplify machine:can()

Now that event names are table keys, we can simply look it up
instead of searching the whole table.