Basic infrastructure for messaging and event sourcing

Done basic interface scaffolding which can be used to send and receive messages.
Also introduced 2 message classes (Event and Command) which can be subclassed by implementations.

Also included a AggregateRoot base class (unit tests pending)

Fixes issue #2