Adding exception raising option to the `trigger` method

Not having an in-house event triggering protection is making the _state machine_ very less powerful because then I have to surround all the `trigger` calls with `if` sentences in order to guarantee the state change has been executed.

Let me know if you prefer other kind of API like `machine.trigger!(:event)` or anything else. I think the `!` is always ambiguous so I decided for a more explicit API.