Move event-sourcing parts to own lib  and refactor persistence strategy

- Close #5: ES now works with Stream, StreamId, AggregateType and
  StreamEvent
- Event translation is task of the repository, ES requires it's special types