Tweaks and bug fixes for Revit Scheduler

Background
-----
This pull request finishes Revit-specific scheduler implementation. It picks up where [the previous pull request](https://github.com/DynamoDS/Dynamo/pull/2477) left off, fixes some issues discovered while testing Revit with scheduler enabled.

Changes
-----
Some important changes:
1. ```UpdateGraphAsyncTask``` asynchronous task now removes warning messages from nodes that involved in the update, the warnings (if any) will be repopulated when the task is finishes. This way warning messages are cleared just as the old ```EngineController.ClearWarnings``` did.

2. ```ClearPromises```, ```RegisterIdle```, ```ExecuteOnShutdown``` and ```Shutdown``` methods on ```IdlePromise``` stub class have now been removed (the new shutdown logic no longer require them since shut down logic is handled beyond ```DynamoScheduler```, which is destroyed at that time).

Notes to reviewers
-----
Hi somebody, please take a look. Those inline notes should help understanding the changes better, thanks!

As described above, these shutdown related methods are no longer required (and this ```IdlePromise``` stub class is going away, too). The methods that were scheduled for execution post-shutdown are to be called after ```DynamoScheduler``` is destroyed, so it's not possible to schedule these like all other ```AsyncTask``` classes.