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
Yep, but right now we're also using doubles (Long2DoubleHashMap).

Unless there are more than about 2^48 (or 2^5X?) plusses, a double represents them losslessly. And our output is double anyway.