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
Extra object allocations.

My measurements have shown that we don't have to worry about that as much as I thought - fast iteration doesn't help much - but it's still good to not needlessly allocate lots of objects. And an Integer is at least 20 bytes + 4-8 byte pointer on a 64-bit platform, instead of 4 + 4 for an int and a bool.