Radix sort

Hello team Algorithm!

Radix sort has been on the list of GSoC algorithms for the past two years and I enjoy implementing algorithms so here is my (almost complete) attempt.  The early commit history is missing, I'm sorry, because I did most of the work before forking the Boost repository.

Some parts of the code that I'm not 100% confident about:
* `identity<T>`: Is this the best way to support actual unsigned integral types and types that can be implicitly converted?
* `tr1_result_of`: Is this the right way to get result_of in this circumstance?
* What is a trivial value of *n*?  I.e., how to test functions that might legitimately throw an exception?

Obviously the tests are embarrassingly duplicated and I haven't decided how to resolve that yet.
The only thing that is definitely incomplete is the documentation -- the code I am pretty happy with but eager to hear suggestions and criticism from others.

Cheers.