Operator to update a mutable dataset with the data stream [WIP]

the update operator requires an update-UDF as well as key indices and needs to be
co-located to the mutable data set that should be updated. the operator then takes
every element and when the elements keyset matches the keyset of an element in the
mutable dataset, the UDF is called. non-null return values from the UDF then are
updates to the dataset.

missing: working mutable datasets (get the dataset driver to handle mutable datasets
as well) and an interface to manipulate mutable datasets from an operator (get, put,
contains)
Mngt of available execution units + location preferences [WIP]

Management of available execution units: the Infrastructure manager
now keeps track of how many execution units are in use / free, so
it knows when there are no more execution units available on a TaskManager
and schedules accordingly (instead of the previous round-robin scheduling,
which assumed that the query/all queries will fit).

Location Preferences: Task's can specify a task to which they have or want
to be co-located to (e.g. Update operator to the mutable dataset, head/tail
datasets in iterations, HDFS sources to input splits). The scheduler then
tries to fulfill these preferences as possible.

missing: topologies are currently never de-registered at the WorkloadManager,
so that the InfrastructureManager currently never knows when execution units
become available again