Fix Boost integration.

- Replace recursive_timed_lockable by recursive_timed_lockable_mixin
  in boost::recursive_timed_mutex.
- Call detach() only if the thread is joinable() in
  boost::thread's destructor.
- Fix rvalue reference problems.
Rewrite thread_function for c++03.

Basically, move semantics were added. In order
to do so, I had to stop using fusion to fuse and
unfuse arguments.
Replace trackable_thread by standard_thread.
Add the d2::access class.