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