CommonDomain brought in from joliver/CommonDomain - Initial stab at #261

This is an initial import of CommonDomain into NEventStore/CommonDomain.
The goal was to minimize breaking changes for existing CD users who aren't
quite ready to string all the things.

Outstanding issues / work / request for feedback:

- EventStoreRepository tracks opened snapshots and streams in a local
  dictionary. The key was a guid and came from the IAggregate.Id. It's now
  a string of bucketId and IAggregate.Id. This seems really naive. Since
  IAggregate.Id is still a Guid, this could stay as a Guid as well. Or,
  some sort of Value Object wrapper around bucketId and IAggregate.Id
  might be in order.

_ IRepository allows for loading / saving with or without a bucket

- The SagaEventStoreRepository is untouched. I haven't used CD for saga
  work so I'm unsure if adding bucketId as a saga parameter is something
  people want. I assume so, but I didn't want to add it without some
  validation

- I believe I applied the NES code style formatting to all files.
Merge pull request #262 from hyrmn/commondomain

CommonDomain brought in from joliver/CommonDomain - Initial stab at #261
Merge branch 'master' into StressTest
Postgres - change Commits PK to CheckpointNumber and add unique index for (BucketId, StreamId, CommitSequence)
Oracle - change Commits PK to CheckpointNumber and add unique index for (BucketId, StreamId, CommitSequence)
Sqlite - add unique index for (BucketId, StreamId, CommitSequence)