[FLINK-1086] Replace JCL with SLF4J and Log4j with LOGBack

- Excluded Kafka's transitive dependencies: jmxtools and jmxri
- Corrected encoder pattern in logback.xml
- Removed explicit logging access. Loggers are now configured by
  configuration files. Fixed Yarn issue with multiple logging
  bindings.

This closes #111.
[FLINK-1017] Add documentation for execution parallelism

This closes #114
Updated documentation figure: FlinkOnYarn.svg

This closes #110
[FLINK-629] getFieldNotNull added to Tuple and updated Aggregators and Comparators to use that where appropriate
[FLINK-629] Updated getFieldNotNull usage and added it to TupleSerializers

This closes #73
[FLINK-1063] Revert race introducing commit

This reverts "[FLINK-998] Close network connections when idle" [1] as
it introduced a race condition into the network stack, which might
result in a re-ordering of network envelopes.

[1] 52512636444902497e47ccbfb1cabaffb3e23343
[FLINK-925] Support KeySelector function returning Tuple types
[FLINK-925] Extended for distinct operator and added test cases

This closes #59
Fix typo in package LICENSE
Refactor TupleTypeInfo and add GenericPairComparator

Now we have TupleTypeInfoBase, TupleSerializerBase, and TupleComparatorBase. They
are now super classes of TupleTypeInfo and the others.

Also rename compare on DataInputView to compareSerialized because Scala
cannot distinguish between the to compare methods for some reason.

This change is necessary for allowing the Scala API to reuse most of the
functionality.

The GenericPairComparator uses the new extractKeys method of
TypeComparator to compare values of any type. This replaces
TuplePairComparator and some other special-case pair comparators. This
is preparatory work for enabling support for Scala Tuples and POJO
comparators.
Perform TypeExtraction outside of Java Operators

Before, FlatMapOperator, GroupReduceOperator, MapOperator, and MapPartitionOperator
performed the Type extraction themselves while the other Operators had TypeInformation
parameters. Now the are all unified, which makes it possible to use them from the
Scala API.

Also Key extraction for selector functions is moved outside of Keys.java
Move the Iteration "Operators" to the operators package

I'm doing this in preparation for the Scala API rework, since then I can just copy over
the operators package and use them for Scala.
Make DistinctOperator and Keys use TupleComparatorBase

Was TupleComparator before which does not work when used from the Scala API.
Change ObjectArrayTypeInfo.getInfoFor to use componentInfo.isTupleType()

This is necessary because the previous test didn't work for Scala tuples.
Refactor Tuple wrapping/unwrapping in Join and CoGroup

Previously both sides were always wrapped/unwrapped, even if one side
was a tuple type. This was not compatible with the Scala tuples and is
also not necessary anymore because of the GenericPairComparator.
Move RichFunctions to api.common package

They were in api.java before but they can be used from Scala,
just like the regular functions.
Rewrite the Scala API as (somewhat) thin Layer on Java API

Don't bother looking at the diff, this is almost a complete rewrite of
the previous Scala API. This uses all the work put into the Java API,
such as TypeInformation, the serializers and comparators and the
operators.

The Scala DataSet and ExecutionEnvironment wrap their respective Java
equivalents. TypeInformation is generated by a macro that uses
TypeInformationGen and other macro support classes. The Java
TypeExtractor is completely bypassed but the TypeInformation and
sub-classes are created by the Scala type analyzer. There is special
support for Scala Tuples in the form of ScalaTupleTypeInfo,
ScalaTupleSerializer, and ScalaTupleComparator.

This also adds tests to flink-scala that are ports of the tests in
flink-java.

There are not yet any Scala specific tests in flink-tests. All the
scala example ITCases are commented out, as well as the examples
themselves. Those will be uncommented once the examples are ported. This
will happen in separate commits.
Connected Components example Scala API rewrite
Add ConnectedComponentsITCase for Scala Example

Also fix some formatting in the example code
WebLog Analysis example