Add `MR::FakeRecord::Attributes` mixin

This adds a attributes mixin for fake records that contains all
the "attribute" related logic for fake records. This is to better
organize the behavior of fake records and make it easier to test.
This is an internal change and doesn't make any changes to the
fake record's behavior yet.

This also removed an unused method from the `Model::Fields` mixin.
I noticed this because the `Attributes` mixin is similar to the
`Fields` mixin and I was using it for reference.