Add ability to ignore events that happen out of their expected state.

This can easily happen when asynchronous activities fire off events.  New API ignoreOutOfState reads like this:
```
FlowBuilder
   .from(MY_INITIAL_STATE)
   .transit(onMyEvent.ignoreOutOfState().to(MY_NEW_STATE)
);
```