[FLINK-1207] Context environments are realized through factories
  - local execution blocking is reset after each run
[FLINK-1237] Add support for custom partitioners
  - Functions: GroupReduce, Reduce, Aggregate on UnsortedGrouping, SortedGrouping,
               Join (Java API & Scala API)
  - Manual partition on DataSet (Java API & Scala API)
  - Distinct operations provide semantic properties for preservation of distinctified fields
  - Tests for pushown (or not pushdown) of custom partitionings and forced rebalancing
  - Tests for GlobalProperties matching of partitionings
  - Caching of generated requested data properties for unary operators

This closes #207
[bin] Remove MaxPermSize parameter for JVM 1.8

This closes #200.