Minor include tweaks for small gain in compile times
Rewrite ConditionVariable to use monotonic clock

This introduces SteadyClock and SystemClock implementations (in
Core::Time) that use clock_gettime(CLOCK_MONOTONIC) and
clock_gettime(CLOCK_REALTIME), respectively. These are used on versions
of libstdc++ up through 4.7, where the provided clocks only have
microsecond instead of nanosecond resolution, and where there may not be
a steady clock provided at all.

It also scraps the use of std::condition_variable entirely, replacing
the internals of Core::ConditionVariable with POSIX (C) condition
variables. These actually work, whereas the std::condition_variable
implementation was giving me trouble with monotonic clocks, especially with
libstdc++ 4.4. Importantly, the new ConditionVariable implementation uses
CLOCK_MONOTONIC for all waiting internally, so it shouldn't be affected by NTP
jumps.

Fix #24: std::condition_variable does not use monotonic clock