Subsume zero-argument overload into the variadic one
Add support and test for C++11 construct/destroy in allocate_shared
Tidy documentation in smart_ptr
Work around VC11 which has broken rebind_traits

VC11 has only partial support for C++11 allocators. For example it has a
non-conforming rebind_alloc and rebind_traits in std::allocator_traits
because it does not support C++11 template aliases.