[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
Fix buffer leak in TaskManager / test tasks