This simplifies stores to just be storage interaction, they no longer react to events.
Controllers now call services and awaits the result from the call.
When the service calls are returned the database is updated.
This simplifies testing dramatically, cause you know that your state is
updated when returned from a call, rather than hoping the store has
picked up the event (which really was a command) and reacted to it.
Events are still emitted from eventStore, so other parts of the app can
react to events as they're being sent out.
As part of the move to services, we now also emit an application-created
event when we see a new client application.
Fixes: #685Fixes: #595
Instead of instructing users to do static calls
in to Unleash, she should instead be allwed to
specify the log provider as an option to Unleash.
This commit introduces the "getLogger" option,
a function responsible for creating a logger.