Extract more registries

This refactoring extracts three classes of object from the wiring by introducing three new registries.

## Repository registry

As you would expect contains methods that return repositories, depends on either the entity factory registry or the validatable variant. This allows you to choose whether you want entities that validate themselves or not.

## Entity factory registry

Returns callable factory functions that produce entities (models without persistence) given the attributes the entity should have. Is the only place where specific entity class names should be referenced.

## Validatable entity factory registry

Delegates to the entity factory registry and adds validation decorators. Has no knowledge of specific entity classes.


Above