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
Yes, this is part of the ‘not perfect’. I had a more perfect solution, but it required some very extended type variables that would interact poorly with dependency injection.

This code would be so much clearer in Scala.