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.

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.