[FLINK-1189] [streaming] Added cross operator

Conflicts:
	flink-addons/flink-streaming/flink-streaming-core/src/main/java/org/apache/flink/streaming/api/datastream/ConnectedDataStream.java
[FLINK-1189] [streaming] Temporal cross refactor

Conflicts:
	flink-addons/flink-streaming/flink-streaming-core/src/main/java/org/apache/flink/streaming/api/datastream/ConnectedDataStream.java
[FLINK-1175] [streaming] GroupBy updated to allow multiple field and keyselector groupings
[FLINK-1188] [streaming] Updated aggregations to work also on arrays by default
[streaming] Removed obsolete state objects from streaming-core
[FLINK-1185] [streaming] OperatorState and StateCheckpoint classes and implementations added for state checkpointing and rebalancing
[FLINK-1187] [streaming] StreamingRuntimeContext added with API support for registering fault tolerant state objects for the operators
[FLINK-1174] [streaming] Added window join operator
[streaming] Introduced a new invokable to allow flexible windowing based on trigger and eviction policies. Additionally created all required policy interfaces.
[streaming] Added interface for policy helpers. Such helpers will allow to use policy based windowing through a simpler API.
[streaming] Created trigger and eviction policies based on element counters. Included respective policy helper and test cases.
[streaming] Introduced extractor interface to enable flexible handling of arbitrary input data types.
[streaming] Created active trigger and eviction policies based on time. Included respective policy helper and test cases.
[streaming] Added extractor implementations for various extractions and conversions. (incl. test cases)
[streaming] Created trigger and eviction policies based on data punctuation. (incl. test cases)
[streaming] Created tumbling eviction policy. This policy evicts always all tuples after a trigger occurred. It can be used to prevent doubled computation between trigger and eviction policies whenever tumbling windows are used. (includes test case)
[streaming] Created trigger and eviction policies which calculate a delta between two data points using a given delta function. The policies evict/trigger in case the delta is higher than a specified threshold. (incl. test case and the interface for delta functions)
[streaming] Added abstract class ExtractionAwareDeltaFunction to enable easy extraction of data in pre-defined delta functions.
[streaming] Added cosine distance and Euclidean distance as examples for possible delta function implementations. Test cases are included as well.
[streaming] Added policy helper for delta policies to provide a simpler API for such policies.