Updates to TaskRuntime

This closes #750

**Logging updates**
 * Added logging to `TaskLifeCycle`
 * Added more extensive logging to `HeartBeatManager` by funneling all heartbeats through a central method that logs the message as well as the stacktrace of the call.
 * Updated logging in `FailTaskStop`

 **Functional Changes**
 * Renamed `TaskLifeCycle` to `TaskLifeCycleHandlers`
 * Added explicit exceptions to capture errors during the execution of user Task code. The exceptions can be found in `com.microsoft.reef.runtime.common.evaluator.task.exceptions`
 * Updated `TaskRuntime` and `TaskLifeCycleHandlers` to use those.
 * Moved the  `TaskLifeCycleHandlers` instance from `TaskStatus` to `TaskRuntime`
 * Cleaned up method names in `EvaluatorRuntime`
 * Removed some task status checks from `ContextRuntime`. They are now handled in `TaskStatus` where more precise error messages are generated.
 * Uncommented the now passing test `FailTaskTest.testFailTaskStart()`
 * Commented out the test `FailTaskTest.testFailTaskStop` which isn't passing right now. It seems that the test has a bug.
Support for assertions and singleton checks

This pull request adds two features to REEF:

**(1) Support for assertions**

We now propagate the assertion state (enabled / disabled) from one JVM to another.

 * Used it in `JavaLaunchCommandBuilder` to propagate the assertions to subprocesses. Also added code there to allow users to override this automatism.
 * Added `EnvironmentUtils.areAssertionsEnabled()`
 * Added a log statement to `Launcher` about the assertion state

**(2) Support for singleton checks**
 * Added the helper class `SingletonAsserter` that allows checking for the singleton property of a class. Also added a test for it
 * Added an assert to make sure Evaluators is a singleton
minor refactoring of the assertion logic
cosmetic fixes to the code in REEF Launcher
Merge pull request #831 from Microsoft-CISL/sergiym_launcher_refactor

cosmetic fixes to the code in REEF Launcher
Merge branch 'master' of https://github.com/Microsoft-CISL/REEF into juwang-httpAvroSerilazer
Merge branch 'juwang-httpAvroSerilazer' of https://github.com/Microsoft-CISL/REEF into juwang-TestJettyHandler