Repository an laxative + Snapshottable

- The TAggregateRoot is no longer required to be of type
IAggregateRootEntity (mind that the implementation could still very well
force you down this path).
- Added an interface for aggregate roots - that would like to have
snapshotting support - to implement.