StreamIds are string based.

Fixes #107

Main interface change is on ICommitEvents and IStoreEvents where the stream id parameter has been changed from a guid to a string. Extension methods that take a guid have been added to minimise breaking changes.

The various SqlStores had various issues with maximum char / byte lengths for the StreamId column. Instead, we store the id in a StreamIdOriginal column, of which we store a Sha1 version of (40 chars) in the StreamId column. The user will always work with the original id, where SqlPersistenceEngine converts it to the Sha1 hash before using it as a sql query parameter.

The NoSql stores did not these issues (of course).

Firebird has been omitted as it is proposed to be removed.

Migration concerns will be handled later.