Support for event triggered transitions

implements #31 and #56 , similar functionality to aasm
It would be good to have a message explaining the error here.