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 - valuable
I like interface - only worthwhile if it isn't a useability issue. I think interfaces cause indirection that can make it hard to learn how code works and hard to trace an object back to actual class instances, constructors, and stuff, which might make it harder for people to learn Lenskit.

Indirect Plus - wasn't that only used in fast land? Its cool, but its the type of magic that I don't think people will understand.

Im mostly pushing back here, If you still think its worth changing (its not really a big thing), then we can drop it.