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.