Refactoring of the YARN resource manager

**Features added**
 * Closing #759: Drivers can now have `com.microsoft.reef.runtime.yarn.driver.YarnContainerRequestHandler` injected to file YARN resource requests in addition to also being able to use REEF requests.
 * Added a TrackingURLProvider to the YARN runtime

**Refactorings**
 * Split YARNContainerManager into smaller classes as opposed to one big one.
 * Renamed `com.microsoft.reef.runtime.yarn.master` -> `com.microsoft.reef.runtime.yarn.driver`
 * Worked with IntelliJ's code analysis to improve code quality.

**Improved shutdown logging and behavior of the Driver:**
 * Added logging of an idle shutdown
 * Added optional logging of the callstack to DriverStatusManager.onComplete()
 * Removed a case in which we would trigger DriverStatusManager.onComplete() twice
Porting Data Loading from canberra into reef-io
Exception handling improvements

**This closes #760:**
  * Added an interface `ExceptionCodec` which shall be used to (de-)serialize Exceptions. This replaces the use of `ObjectSerializableCode<Exception>`. The interface returns `Optional<Throwable>` upon deserialization, thereby geving a clean hint as to whether the Exception can be deserialized.
  * Added a default implementation of `ExceptionCoded` called `DefaultExceptionCodec` which does use Java Serialization.
  * Used an injected `ExceptionCodec` in all places where Exceptions were (de-)serialized using `ObjectSerializableCode<Exception>`

**Refactorings:**
  * Cleaned up the message passways in `EvaluatorManager` into more special cased methods like `.onEvaluatorFailed()`
  * Improved failure logging in the `FailTaskTest` `Driver`.
Added REEF-Poison
This project will host fault injection tools for REEF. So far, it contains a very simple failure injection for REEF contexts
Merge branch 'weimer_759' of github.com:Microsoft-CISL/REEF
Merge branch 'weimer_760' of github.com:Microsoft-CISL/REEF

Conflicts:
	reef-runtime-yarn/src/main/java/com/microsoft/reef/runtime/yarn/master/YarnContainerManager.java
Added the missing pom file
Merge branch 'weimer_poison' of github.com:Microsoft-CISL/REEF
Merge branch 'master' of https://github.com/Microsoft-CISL/REEF into httpServer