Instead of allowing ALL types to be the Id, only allow String or Guid via StringAggregate or GuidAggregate

The repository was too complicated to use for my tastes.

_repository.Get<Item>("id") turned into _repository.Get<Item, String>("id") and _repository.Add(item) became_repository.Add<String>(item)

Which I didn't want to type for all handlers.