CXX-164 Become agnostic about boost thread version

This lets our users have whatever BOOST_THREAD_VERSION they like when consuming the library, and also lets us work with the newer semantics (so, in principle we can bump along to BOOST_THREAD_VERSION 3 when building, if we felt the need). This change does three things:

- Switches to using forward compatible names for things (condition to condition_variable, uses lock_guard and unique_lock instead of mutex::scoped_lock, etc.)
- Adds calls to detach/join where needed.
- Removes xtime from the public API (I think)
- Removes mutex.h from the set of public headers.

Please have a look at the behavior changes, not just the renamings.