Rewrote memo field parsing.

Memo field parsers now read and return the memo instead of just returning
the index. This make the implementation cleaner and more consistent, since
all parser now return the actual value.

Also the code in _read_record() could now be moved into
_iter_records(), which should help speed things up a bit.

Lastly, the field parser is instantiated inside _iter_records(), which
means you can switch field parsers between iterations (like the
documentation used to state).