Create `MR::Model::Fields` mixin

This moves the the fields logic for a `MR::Model` into a separate
mixin. The goal of this is to properly split up the model's
interface into smaller components that work together. The fields
mixin uses the base configuration mixin. For the most part, this
is an internal change and will provide the same interface that
`MR::Model` currently does. This doesn't change any of
`MR::Model`'s behavior yet. This is just setup for changing it
later.

Related to #70