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
Adding an external interface for the fiber scheduler. This allows us to use the fiber scheduler safely from a shared object without. This had to be done to prevent multiple instances of static / thread local state to exist. Wrapper implementations of the fiber based synchronization primitives can be added to extern_fiber.h, and implemented in fiber.cc to ensure there is only 1 definition (that of the server).
Adding a bi-directional shortest path implementation for Indy that uses the fiber scheduler to explore multiple children in the BFS in "parallel" on the given core. It is parallel in the sense that there are multiple search stacks (fibers) that execute on the same core (thread). When one blocks for IO, another can run.
The bi-directional aspect assumes that if the edge <A, 'is_friend_of', B> exists, then so does <B, 'is_friend_of', A>. A seperate implemetation can be written for a directed graph.
Merge pull request #241 from cmaloney/rm-base-time

Move towards std::chrono (Remove <base/time>, cleanup in JHM)
orly/client/repl: Add missing include
Cleaning up some unused code
using std::tuple_element_t