Add type definitions for trigger dispatch table.
Simplify MessageProcessor, and add DispatchMessageProcessor implementation.

Since the program's state is global and doesn't need to be carried around as in
the Haskell engine, the only functionality the message processor really needs to
provide is, the ability to process a message. There is no need for state
threading (as far as I can see), so MPStatus can be reduced to a simple enum.
Implement the engine's processMessage and runMessage methods.