State based transition modification

Short and sweet, and allows you to use any ActiveModel validators, custom or stock.

https://github.com/geekq/workflow/issues/closed#issue/22

-Paul