Add propogate=False property to swallow exceptions after on_error

When using `on_error` we've found it useful to swallow exceptions since the FSM module is already handling the state transition.  This PR adds an optional `propogate` property to control this.  Behavior defaults to `propogate=True` matching current behavior.

Note: a test was included but it's unclear how to run the suite, so it might not be passing.  Some docs on how to run the tests would be much appreciated.