Setup `MR::ReadModel` to work with `MR::Factory`

This adds a new factory type for read models. This will build
fake data for a given read model class. This was enabled by having
read models define their fields formally. This allows the
factories to look over the configuration and provide fake data
for the read model. This should help with testing in the same way
factories help with regular models and records.