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
Hmm... Thats a tricky one. 
One one hand:
 * This feels like a really thin distinction which won't be obvious to outsiders.
 * Changing now would be changing based only on my apprehension, and not any actual experiance with the distinction causing issues to others.

On the other hand:
 * This would avoid repeated re-merging (for algorithms that are based on count like svd++)
 * This would make it very clear and make both of the objects basically POJO (vrs. the other one where the object has to be "interpreted" to know what it really means, which is cognative load I want to avoid).

Im leaning towards Plus and PlusBatch as you've described it. Both classes should have clear documentation mentioning the opposite class and clarifiying the distinction between the two. This gives us the goods on my second hand while addressing to the best of our abilities the bads on my first hand.

This is, of course, contingent on you wanting to take the time to build that out. this proposal sounds like a nontrivial ammount of work, and if we just want to move forwards I would say we should just remember this discussion and take action if problems materialize.