use template partial specialization to prevent instantiation of
unique_ptr with is_rvalue_reference<D> == true
user std::swap for swapping, not manual temporary
removed hard boost namespace requirement for typetraits. std version
works just as well.
more boost namespace typetraits references
fixed base implementation if partial C++11 support is available
unique_ptr.hpp wasn't using std::default_delete if available
took tested base unique_ptr and copied to array specialization (make
sure standard compliance is good). still need to implement operator[]
for array specialization.
implemented operator[] for array specialization
don't need to specifically reference
unique_ptr::this_type_does_not_support_comparisons