Added OnTimeChange callback for testing

Allows user's code to know what time eventful test system
says it is.
Added function to create Neo4j unique constraints
Made EventPosition CLIMutable

This is required by the Neo4jClient deserializer.
Removed MessageId from metadata

It is stored by EventStore directly
Code cleanup
Added New Persisted Event types

Used to represent events that are in the event
store and already have a stream and eventnumber
Renamed MessageId to EventId

First with EventStore naming convention
Reuse event handler run code
Added StandardConvetions module to capture standard patterns
Start adding state change handlers