More efficient empty shared pointer construction

Passing a nop deleter to the shared_ptr constructor would allocate an internal resource manager object. That unnecessary allocation can be avoided by constructing from another empty pointer.