[FLINK-1026] Fix PojoComparator

Was not using the user code class loader and therefore could not clone
the serializer that is internally used.

Also modify KMeansForTest to make use of the PojoComparator to prevent
such bugs in the future.

Also fix PackagedProgramEndToEndITCase, AvroExternalJarProgramITCase and
the external jar file class loader tests in flink-clients. The pom was
not configured to remove the code that should only be in the external
jar from the test-classes directory.
[FLINK-1031] Fix POM files to support Eclipse
Update LICENSE and NOTICE files

[ci skip]
Consolidate some third-party license entries, update readme in binary distribution

[ci skip]
Add Netty to License files

[ci skip]
[FLINK-1024] Enable automated snapshot deployment through Apache's Maven infrastructure
Add ASM to LICENSE file

[ci skip]
Add ScalaTest to LICENSE file

[ci skip]
Add notice to ClosureCleaner

[ci skip]
[Documentation] Move "How to contrib"; "coding guidelines" out of the code repo (part of FLINK-1012)
Improve build instructions with respect to Hadoop 1 and Hadoop 2 dependencies.
[ci skip]
Fix License and Notice entries and headers for all web frontend files (css, js, fonts)
[FLINK-386] Fix and clean up dependencies

- Upgraded to junit 4.11 and fixed code that used deprecated
- Changed scala dependency from 2.10.3 to 2.10.4 to avoid conflicts with scalatest dependency
- Upgraded log4j and commons-logging dependency
- Removed superfluous dependency on commons-codec
- Upgraded dependency versions in the base module
- Ensured consistency of avro versions across submodules
- Upgraded AWS dependency to version 1.8.1
- Unified configuration of jetty dependency

This closes #80.
[FLINK-998] Close network connections when idle

1. Close idle TCP connections

Tasks enqueue envelopes to be dispatched via NettyConnectionManager. The
first task to enqueue an envelope triggers the establishment of a new
TCP connection to the target task manager. Usually, there are multiple
connections between the same task managers in order to avoid deadlocks.

This commit addresses the following problem: idle connections were never
closed. This meant that the number of TCP connections was monotonically
increasing over time. Idling connections are now closed after a
configured amount of time, see 'taskmanager.net.closeAfterIdleForMs'.

2. Enqueue envelopes directly

TCP connections are handled by Netty's IO loop. Every enqueue operation
needs to ensure that the envelope to be enqueued is handed over to the
respective IO thread in a thread-safe manner. Previously, this was done
via Netty's user events.

This commit addresses the following problem: every enqueue operation
resulted in the creation of an IO event loop task to hand over the
envelope. Envelopes are now directly added to a ConcurrentLinkedQueue,
which drastically improves the throughput of enqueue operations. The
user event is now only fired to trigger the processing if the queue was
empty.

3. Added unit tests for OutboundConnectionQueue and adapted existing
tests to test concurrent enqueue and close

4. Removed unused arguments to NettyConnectionManager (low and high
water mark)

This closes #76.
Update Netty dependency to 4.0.21.Final
Add type parameters in OutboundConnectionQueueTest

The use of PowerMock's Whitebox without type parameters led to compile
problems with Java 6.
Remove unused import from OutboundEnvelopeEncoderTest
[FLINK-1039] Fix pojo expression keys for group reduce
[Docs] Limit nesting of generated TOCs

The jekyll tocify plugin generates an HTML TOC based on the headings
of the markdown files. This commit limits the nesting of the TOC to 2,
which means that only h1 and h2 element will be taken into account.
Previously, all heading elements were used, which resulted in a very
cluttered TOC.
[Docs] Adjust Java API documentation to be in sync with latest changes

[ci skip]
[FLINK-701] Refactor Java API to use SAM interfaces. Introduce RichFunction stubs for all UDFs.