Made StateMachine an Agent.

I don't see why the `Agent` actually needs an `update` method. It seems a bit misplaced, because the `MessageDispatcher` needs to be updated, not the `Agent`s. By removing that it is possible to make `StateMachine` directly an `Agent` as well, so one can send telegrams directly to the state machine and does not necessarily need another agent to delegate to it.(see `Bob` and `Elsa`).