Model, stop using the index operator for read/write fields

This changes the model fields to stop using the index operator for
reading and writing fields. They will instead expect a reader or
writer method on the record and will use that. This works with
standard ruby `attr_accessor` attributes but will not work for
attributes that are selected with a custom `SELECT`. These are
no longer supported direclty, and will have to have a reader
method defined for them on the record.

Similarly, this removes the `[]` and `[]=` operator from fake
records. Fake record only fakes the things MR cares about, and
with models not using the operator, MR no longer needs them to be
faked. This is simpler and fits MR's overall design.