Refactor SharedPointerMap and VectorMap templates to adopt std::map
interface functions name.

Create a WeakPtrWrapper template to wrap a weak_ptr and access its data
transparently.

Now the references returned by the templates are WeakPtrWrapper objects
Orientation component container is now a templatized VectorMap.