#237 Add ICommit, ISnapshot, IStreamHead and IEventMessage interfaces. All API points use these instead of Commit, Snapshot, EventMessage and StreamHead concrete types. More to do...
Test fixes, use ICommit instead of Commit. (Also code standard cleanup)
Test fix- ensure that when no event conversion takes place, that the source commit is returned.
Test fix to deserialize ListEventMessage from raven commit.
Deserialize to List<IEventMessage>
Big fundamental change... Instead of a single Commit object we have an ICommit that comes *from* the storage and a CommitAttempt that is used to go *in to* the storage.
The reason is that checkpoint facility is now ICheckpoint (instread of int) and which needs to have different implementation per storage engine. Also, the checkpoint value is
generated on storage engine side *after* a CommitAttempt has been successfull.

Significant knock on effect on all the tests and storage engines.
Guard against null commit attempt.
Included single event so CommitAttempt is valid.
Remove unused method.
Remove test "when committing an empty attemp" - it's not possible to create empty attempts due to guard clauses.
Return ICommit from moq setup
Remove test that assert non-positived stream revision - not possible to create a CommitAttempt due to guards
Add Guard to ensure commit sequence is not less than stream revision in CommitAttempt
Remove test that asserts non positive commit sequence in CommitAttempt as it's not possible due to guards.
Return commit from moq setup.
Remove redundant test due to CommitAttemp guards
Merge branch 'master' into ApiRefactor
Remove reduntant test due to CommitAttempt guards.
Rename method
Add StartCheckpoint property to IPersistStreams.StartCheckpoint to allow the called use it to start off the polling client.