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.
[FLINK-701] Several cleanups after SAM refactoring.
  - Lambda detection compiles on earlier java versions
  - Add lambda detection test.
  - Fix JavaDocs