Add the ability to use Duration objects for time

Three sub-changes to make this fully possible:
- time related tags to get the time info
- change a few millisecond time tags to use Durations instead
- Durations identify by tick number so they can be reconstructed fully,
rather than with poorly estimated day / hour / minute / second (This
will also fix problems like typing '1t' and get '0.0s' back)
Merge pull request #581 from mcmonkey4eva/master

Finally, a feature-based pull request!