[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