Adds ability to define name for opposite side of a one-to-many relationship using hasOne

See added tests