[FLINK-979] Fix NetworkThroughput test input and output task config

- Set DummyInputFormat and DummyOutputFormat via TaskConfig to respect task
  hierarchy refactoring.
- Run test via main method instead of JUnit test runner (this was originally
  a test in order to use RecordAPITestBase for JobGraph submission).

This closes #41.
[FLINK-980] Fix buffer leak in OutputChannel
Changed default number of task slots per machine to one.
Add logging for task slots.
LocalExecutor automatically picks up the maximum DOP for plans as its number of slots.
[FLINK-973] [FLINK-969] Unify, clean up, and extend all environment logging at JobManager/TaskManager startup

This closes #40.
[FLINK-926] Add shallow copy, deep equality, and hashCode to Tuple classes

This closes #17.
[FLINK-949] Properly report GlobalBufferPool OutOfMemoryError to TaskManager

This closes #28.
[FLINK-960] Fix CollectionDataSource bug

This closes #33.
Update Quickstarts Java API, Run Example, and Setup Quickstart

This closes #39.
[FLINK-971] Configure PooledByteBufAllocator in NettyConnectionManager instead of using the default allocator

Configuration:
    - 0 heap arenas,
    - n direct arenas (where n = num incoming + num outgoing network IO threads), and
    - bufferSize << 1 bytes page size.

Additionally, OutboundEnvelopeEncoder directly implements ChannelOutboundHandlerAdapter instead of the
MessageToByteEncoder<Envelope> wrapper to have tighter control of memory allocations.

This closes #38.
[FLINK-760] Add distinct operator
Speed up "getOptimizedPlan" by not starting the local embedded runtime.
Change string construction to work around a known JVM performance bug still present in some older JVM versions.
InputVertices do not require an input format.
Fix generic type warnings in generated tuples