Adds function flatMapValues.

Could we have a test case that does something other than the identity function ? For example this scala code snippet might be interesting
```
val c = sc.parallelize(List((0,2), (1, 2)))
// Generate 1 to x for every value
val d = c.flatMapValues(x => 1 to x)
d.collect()
// Prints Array((0,1), (0,2), (1,1), (1,2))
```