Squashed 'third_party/linenoise/' content from commit e0f15a6

git-subtree-dir: third_party/linenoise
git-subtree-split: e0f15a65d6531a93942e413f3110f52ad851806e
Merge commit '0285095b486e185fa8c8918ba53391d46e9c14f1' as 'third_party/linenoise'
Replace readline with the BSD licensed linenoise library
Print out the internal command error message when make_dep_file fails
Fix random test (It just had a bad comment at the top...)
Cleanup old cruft
Remove <base/time.h>, moving all uses to std::chrono

Also update some related things (TTimerFd) to use std::chrono while passing through.

orly/indy/manager_base.h: Changed fairly significantly in order to migrate to chrono. Restructured minimally to try to keep things fairly relatable / readable.
orly/indy/disk/durable_manager.h: I did some moderate refactoring to reduce duplication
Change JHM to use std::chrono rather than the old C struct for time (timespec)
util/time: Add another useful function
Pull out SleepUntil to be a helper function doing the check first optimization

At least at one point in the past the optimization was added because it was a significant perf win.
orly/indy/manager_base: Remove an excess system call
util/time: Update some documentation, move functions to better names
Add a cpu_clock which provides a chrono compatible clock wrapping CLOCK_THREAD_CPUTIME_ID

Requirements: http://en.cppreference.com/w/cpp/concept/TrivialClock
Update <base/timer.h> to use std::chrono

And update all users.

Pulls in a rather large bit of making <orly/perf/kv_exercise> compile again
Remove manual clocks / hand-rolled timekeeping (timespec) code

This moves it all to std::chrono which provides much cleaner facilities for working with time data and pushes the units into the C++ type system.
Use a helper function to convert chrono durations to seconds represented by a double.

Normalizes two different directions and a couple one-offs
Address reviewer comments

 - Add IfLt0 check
 - Remove unnecessary std:: (And a few more cases)
 - Remove unintended header comment change
Due to the use of atomics, certain race conditions occur when a lower priority thread acquires A, then de-schedules, and a real-time priority thread tries to acquire A. Since the real-time thread won't stop trying to acquire A until it is de-scheduled (which it will not be) we end up in a cpu-stuck state. This patch helps avoid a common occurence of this on low-core count machines. It does not resolve the underlying issue.
Merge pull request #223 from cmaloney/no-readline

No readline
Merge pull request #244 from jmlvanre/low-core-issue

Low-core count race condition