[FLINK-1060] Added methods to DataSet to explicitly hash-partition or rebalance the input of Map-based operators.

Adds three methods to DataSet:
- `DataSet.partitionByHash(int...)`
- `DataSet.partitionByHash(KeySelector)`
- `DataSet.rebalance()`

The methods create a PartitionedDataSet on which Map-based operators can be applied (`filter()`, `map()`, `flatMap()`, and `mapPartition()`).

Feedback welcome.
I will add documentation once code changes are considered to be good to be merged.
Our checkstyle confguration `tools/maven/checkstyle.xml` says `<property name="ignoreComments" value="true" />` for the `RegexpSinglelineJava` check.
So we are not checking for that stuff within comments.
Activating this leads to 10101 checkstyle violations.