Support for event triggered transitions

implements #31 and #56 , similar functionality to aasm
Could we have a little note explaining why you might find events useful please?