Add basic implicit feedback data support

This adds basic support for implicit feedback data.

- Adds `Plus` event (#517)
- Refactor text-based data access to be more general, deprecating `SimpleFileRatingDAO` and creating new `o.g.l.data.text` package
- Support reading CSV files of unary events, optionally with timestamps
- Support reading CSV files of arbitrary event types with arbitrary fields
Consistency? I like interfaces? Worth discussing, but I *think* the interface is still the right call.

An indirect Plus (for example, one that just stores an index into an array-based or memory-mapped store) is one use case. I think we still get benefit from doing that (although perhaps it is worth measuring). Certainly, fast iteration was faster with such classes than with a full mutable event class (I did see that difference clearly in my earlier measurements).

Also gives us the opportunity to add something like fast iteration elsewhere?