[FLINK-1097] Fixed multiple slf4j bindings when using Hadoop2

I excluded all slf4j-log4j12 transitive dependencies to get rid off the warning that slf4j finds multiple slf4j bindings in the classpath. Additionally, I added log4j-over-slf4j and excluded all log4j transitive dependencies so that slf4j handles also legacy log4j logging messages from dependencies.

Author: Till Rohrmann <trohrmann@apache.org>

Closes #121 from tillrohrmann/FLINK-1097 and squashes the following commits:

b9f76d5 [Till Rohrmann] Excluded slf4j-log4j12 as transitive dependency in order to not have multiple slf4j bindings in the class path. Added log4j-overslf4j and excluded log4j transitive dependencies to collect log4j outputs.
[FLINK-989] Improve error message when not finding enough task slots.
[FLINK-1030] Refactor and clean up instance managers.
[FLINK-1094] Reworked, improved, and testes split assigners
Redesign Scheduler from pre-assignment to more flexible schedule-on-demand model
Adapt RPC to support primitive types as parameters and return values.
Redesign Scheduler part 2
Unify all job vertices to one type (rather than dedicated input/output types)
Make IDs immutable and serializable.
Stubs for intermediate data set and related classes
Refactor job graph construction to incremental attachment based
Remove management graph and simplify historic job status
Introduce execution attempts at execution vertex.
Add tests for job event classes
Finalize ExecutionGraph state machine and calls
Adjust ExecutionGraph state machine to TaskManager's failing model (direct transitions to canceled)
Adjusted job graph generator to new job graph classes
Adjust test logging for new execution graph tests to logback framework
Add proper locality of scheduling tracking to scheduler. Add local scheduling to slot sharing groups.
Add options strict co-location constraints to scheduler
More graceful failing/errors/logging when canceling in early job stages