Add overloads of make_shared and allocate_shared for arrays for E&& where E is typename boost::detail::array_base<T>::type