Support for sideloading relations

This introduces a simple set of tools for parsing sideloaded association
data and then vivifying that data as a collection directly on the model.
It only supports very simple singularization and association for now.