Adding exception raising option to the `trigger` method
trigger! raises exception on non-valid state change
Merge pull request #19 from vangberg/trigger-with-exclamation-mark-raises-exception

Using trigger! with incompatible state change raises exception.