SPARK-2519 part 2. Remove pattern matching on Tuple2 in critical section...

...s of CoGroupedRDD and PairRDDFunctions

This also removes an unnecessary tuple creation in cogroup.
This I'm sure has been done a million times, but one more for good luck -- here is a `map { case (x, y) => x + y}` versus `foreach { xy => xy._1 + xy._2}`:
http://www.diffchecker.com/vtv6cptx

No new virtual function calls, but one new branch (trivially branch predictable) and one new throw (which will never be invoked), and several store/loads. (Perhaps I'm misreading the bytecode, but isn't `astore_2` followed by `aload_2` a no-op?)