Add propagate=False property to swallow exceptions after on_error

When using `on_erro`r we've found it useful to swallow exceptions since the FSM module is already handling the state transition. This PR adds an optional propagate property to control this. Behavior defaults to `propagate=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.