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 when a read
model is needed. Now the fake data doesn't have to be manually
set.