libc++: add platform header for ceph smart pointers

Adds ceph::shared_ptr and ceph::weak_ptr that are configured based on
the build environment (tr1 for non-c++11).

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
libc++: use ceph namespaced smart pointers

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
libc++: add portable unordered_map/set

Adds ceph::unordered_map/set that is selected based on the build
environmet.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
libc++: use ceph namespaced unordered_map/set

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
(FIXME) libc++: avoid hash re-definitions

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
(FIXME) libc++: temporarily use "include/memory.h"

librados.hpp uses std::tr1::shared_ptr which may not be available such
as in libc++. This will need to be made portable, and one way is ot hide
the implemetnation of ObjectOperation.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>