イベント機能の追加とそれに関連した変更

- DomainEventPublisherを同期型(`scala.util.Try`)と非同期(`scala.concurrent.Future`)の両方に対応させるために、RepositoryトレイトはM[R]を返すように修正した。MとはTry, Futureなどのモナド型を想定している高階型。つまり、Repositoryトレイトは、同期型や非同期型の概念を抽象化したトレイトです。

- 従来のRepository型はSyncRepositoryに、RepositoryはSyncRepository, AsyncRepositoryの上位型となる。これに伴い、`AsyncRepository#resolve(id: ID)(implicit executor: ExecutionContext)`は`AsyncRepository#resolve(id: ID)`に統一化される。executorはリポジトリのコンストラクタで暗黙的パラメータとして受け取ることとなる。

- 同期系はsync, 非同期系はasyncのパッケージに移動。
- 汎用的な実装はGenericというプレフィックス名を不可。
- XXXXSupportは骨格実装を提供。
- XXXXOnMemoryRepositoryという命名は廃止し、XXXXRepositoryOnMemoryに変更した。