Fixed failing visualization manager test cases

Background
-----
This pull request is meant for fixing the following defect (tracked internally):

* [MAGN-3865 Fix failed test cases in VisualizationManagerUITests](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-3865)

Important Changes
-----
There are several important changes in this pull request:

1. Secondary threads in ```RenderManager``` that were spawned to perform actual ```UpdateRenderPackage``` are now removed. The primary thread in ```RenderManager``` is now responsible in picking up ```RenderTask``` from ```renderQueue```, process them and call ```NodeModel.UpdateRenderPackage```.

2. Instead of ```Thread.Sleep```, ```RenderManager``` now relies on ```ManualResetEvent``` wait handlers in notifying it when a ```RenderTask``` is placed in its ```renderQueue```. This allows the primary render thread to be completely rest and resume as soon as a ```RenderTask``` is enqueued.

3. ```RenderTask``` is made a ```class``` rather than a ```struct```. This way it can be compared against ```null``` to indicate if there is any valid ```RenderTask``` in the ```renderQueue``` (instead of having to rely on a separate ```bool``` flag).

4. A new method ```RenderManager.Shutdown``` is being added to raise a shutdown event so that render loop properly terminates and merges with the calling thread.

Testing Scenarios
-----
1. I have tested this on a surface model I created, dragging ```Settings > Render Precision``` slider will queue a lot of ```RenderTask``` into ```renderQueue```, and these tasks are properly picked up by primary thread in ```RenderManager```. Eventually the primary thread goes back to waiting when all tasks in ```renderQueue``` are processed.

2. Test this on ```Revit 2014``` and ```2015```.

Hi @lukechurch and @Randy-Ma, I could you extra pairs of eyes and some expertise, for sure ;)