Add a `Factory` module, handles generating model and record objects

This adds a `Factory` module that helps build model and record
objects. This is a testing tool that can be used to generate
models or records easily. For non-fake records, the factory will
pre-fill all the columns of a record with random data. This should
allow creating instances of these records easily with arbitrary
data.

@kellyredding - It's hard to tell from the code changes, but this allows easily creating factories for records/models like:

```ruby
UserRecordFactory = MR::Factory.new(UserRecord)
UserFactory = MR::Factory.new(User) do
  fake_record_class FakeUserRecord
end

class FakeUserRecord
  include MR::FakeRecord
end
```