Setup model associations so polymorphic belongs to can inherit

This sets up the model associations so that when adding a
polymorphic belongs to, it can inherit from the one to one
association. The polymorphic belongs to only wants to re-work
the `read` method, but use all the other one-to-one behavior.
This changes all the associations to have consistent initialize
signatures that are compatible with the future needs for a
polymorphic belongs to.