Add `has_one` association for `MR::Model`

This adds a `has_one` method for specifying has one associations
for a `MR::Model`. This is mostly syntactic sugar, as MR doesn't
know any difference between a `BelongsTo` and a `HasOne`. Thus,
this is mostly an expressive and intent-revealing syntax, instead
of providing new functionality.
Add `has_one` for fake records

This adds a `has_one` for `MR::FakeRecord`. This allows more
faking of ActiveRecord's interfaces. A has one has no special
behavior and just behaves as a normal accessor.