Create `MR::Model::Configuration` mixin

This moves the the base configuration 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.
This is easier to test and doesn't mix separate sets of logic.
This is an internal change to the gem and won't change the
behavior of including `MR::Model` to create models. This, and
other mixins may also be used with the updates coming to
MR's `ReadModel`.

This makes backwards incompatible changes to the public
interface and slightly modifies the behavior:

* Removed `record_class=` method. For setting the `record_class`
  pass the value to the `record_class` method. This simplifies
  the interface.

Closes #91
Related to #70

**Note** This breaks MR. The full test suite doesn't run and the
`Model` mixin doesn't work at all. This will be fixed eventually,
this is just breaking up the entire process across a few commits.