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).


![Image of the Octodex]
(https://octodex.github.com/images/chellocat.jpg)


Hi @ke-yu, @Randy-Ma, @aparajit-pratap and @ikeough, whoever that's free enough :)