StateMachine.Emit: Use the channel to return errors

Emit is returnning error as well as accepting an optional error channel to
return errors happening later asynchronously. That is, however, bit a too
complicated and there is not really any use case for splitting this. So from
now on, Emit returns no error, you have to pass a channel to get any feedback.

Signed-off-by: Ondrej Kupka <ondra.cap@gmail.com>