Updated TimeStamp implementation

Background
-----
This pull request updated the "TimeStamp" class as described in [this section](https://docs.google.com/a/adsk-oss.com/document/d/17xmcMexPLmASaGJ89hKXzDC4EFmdOa5Mtl2gTG6hQ04/edit#heading=h.w1c58f2vo4p) of the threading design document. This is meant to be a continuation from [a previous pull request](https://github.com/DynamoDS/Dynamo/pull/2145).

A very important aspect of this change is surrounding the way "TickCount" is introduced to "TimeStamp" class. The "TickCount" is obtained from the high resolution counter on the system through "Stopwatch.GetTimestamp" API. As the tick count ties to the processor since system boot, it represents an accurate reference of time (instead of just being an incremental counter).

Hi @ke-yu, @Randy-Ma, @aparajit-pratap and @ikeough, whoever that's free enough :)

![Image of the Octodex]
(https://octodex.github.com/images/chellocat.jpg)
I think it matters, if I can write a single ```==``` to so that ```!(a < b) && !(b < a)``` is done in one comparison, then I will do just that. What's your recommendation?