Refactor the serializers as use-case classes.

This is the first step in a pretty major refactoring, turning the
stuff that I'd been putting into concerns into a verby small-class
domain layer. This will be far, far more maintainable.