Implemented new scheduler thread classes

Background
-----
This pull request mainly implements two new scheduler threads as described in [the documentation](https://docs.google.com/a/adsk-oss.com/document/d/17xmcMexPLmASaGJ89hKXzDC4EFmdOa5Mtl2gTG6hQ04/edit). This is meant to be a continuation from [a previous pull request](https://github.com/DynamoDS/Dynamo/pull/2102).

1. ```DynamoSchedulerThread``` for standalone Dynamo
2. ```RevitSchedulerThread``` for Revit hosted Dynamo

Additional changes
-----
Less obvious is the way we added dependency on ```DynamoCore``` in ```RevitServices```, from the way things look that seems to be alright. I'd see what @ikeough has to say about it.

Hi @ke-yu, @Randy-Ma, @aparajit-pratap and @ikeough, please have a look at this, thanks! :)

![Image of the Octodex]
(https://octodex.github.com/images/droidtocat.png)
In standalone Dynamo scenario the default implementation of ```ISchedulerThread``` will loop forever (which is the behavior you see now) until ```DynamoSchedulerThread.Shutdown``` is called (by ```DynamoScheduler```). That is typically the shutdown scenario when user closes the main window. Does that address your concern?