[FLINK-701] Refactor Java API to use SAM interfaces. Introduce RichFunction stubs for all UDFs.
[FLINK-701] Several cleanups after SAM refactoring.
  - Lambda detection compiles on earlier java versions
  - Add lambda detection test.
  - Fix JavaDocs
[FLINK-701] Change KeySelector to a SAM interface

This closes #85
[FLINK-1023] Switch group-at-a-time function to java.lang.Iterable (from java.util.Iterator)
Iterables over transient data throw an TraversableOnceException when iterated over again.

This closes #84