[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
[FLINK-1140] Added FlatMap alternative returning an Iterable
[FLINK-1140] Different WC examples for testing

To be removed/merged to the current WC