[FLINK-998] Close TCP connections after destroying logical channels

- This commit introduces reference-counting to keep track of the
  InputChannel and OutputChannel instances, which share the same
  physical TCP connection.

- When the logical channels are released, the reference count will
  reach 0 and the respective TCP connection can safely be closed.

- Furthermore, the debug thread in the OutboundConnectionQueue is
  properly shut down and all queued buffers are freed when the
  channel is closed or an Exception occurs.

This closes #255.
Exclude docs/_site/** from License Check
[FLINK-1287] LocalizableSplitAssigner prefers splits with less degrees of freedom

This closes #258
[FLINK-1208] Enable CsvInputFormats to ignore invalid lines and lines starting with comments

This closes #201
[FLINK-1324] [runtime] Trailing data is cached before the local input strategies are closed.
[FLINK-1322] Make Scala API respect WriteMode set in Config

This closes #266
[scala] Change ScalaAggregateOperator to use TypeSerializer

This closes #263
[misc] Fix/suppress various compiler warnings.
[FLINK-1305] [FLINK-1304] Test for HadoopInputWrapper and NullWritable support

This closes #252
[FLINK-1307] Allow file input from nested directory structure

This closes #260
[FLINK-1307] Excluded directories that match the file-filter from recursive descent.
Fixes broken code highlighting in documentation
[FLINK-1266] Generalize DistributedFileSystem implementation
to HadoopFileSystem wrapper, which supports all subclasses of org.apache.hadoop.fs.FileSystem.
This allows us to let users use all file systems with support for HDFS.
The change has been tested with Tachyon, Google Cloud Storage Hadoop Adapter and HDFS.

The change also cleans up the Hadoop dependency exclusions.