implement hybrid logical clock

Summary:
Implementation closely followed http://www.cse.buffalo.edu/tech-reports/2014-04.pdf. I rearranged the update algorithms to a form that I found more intuitive and practical, so it is advisable that someone look over the tests to rule out that I got something wrong and subsequently wrote wrong tests.
Nothing else with regards to clock skew has been done. In practice, via SetMaxDiff the allowed skew can continuously be updated depending on what delays are being gossipped/measured.

Test Plan: read paper and compare update routines, manual step-by-step study of some test cases, make test, make testrace, make coverage

Reviewers: andybons, spencerkimball

Reviewed By: spencerkimball

Differential Revision: http://phabricator.cockroachdb.org/D78