[scala] Change input of grouped ops from TraversableOnce to Iterator

Iterator is a subclass of TraversableOnce, so it doesn't break existing
code. We can have an Iterator anyways and it provides more functions for
the user.
[streaming] CoGroupedWindowReduceInvokable refactor

[streaming] Grouped window reduce bugfix
[streaming] Added a TypeWrapper which combines two TypeInformations into a Tuple2 TypeWrapper.
[streaming] Added CoBatchedDataStream and CoWindowDataStream with reduce functionality + CoBatchReduce bugfix

[streaming] RAT & Checkstyle fix
[FLINK-1160] Method added to RecordReaders to allow publishing events to specific inputs
Fix the Javadoc link in DataStream class

Fix the Javadoc link for org.apache.flink.api.common.functions.RichFunction and missing method reference in DataStream class.

Author: Henry Saputra <henry.saputra@gmail.com>

Closes #154 from hsaputra/fix_comments_streaming and squashes the following commits:

127e47a [Henry Saputra] Fix the Javadoc link for org.apache.flink.api.common.functions.RichFunction and missing method reference.
[FLINK-1170] Fix faulty input split localization
Pass hostname to split assigner
Avoid clashes by only using the first component of the fully qualified hostname
[FLINK-1170] address pull request review comments

This closes #158
Prevent RPC service from blocking on exceptions during task cleanup on canceling.
[FLINK-1171] Move Scala API tests to flink-tests project

This closes #159
[FLINK-1164] Gracefully handle empty (identity) iterations
[FLINK-1167] Handle unions at the root of the iteration

This closes #160
[scala] Change CaseClassSerializer/Comparator to not use For-Loop