SmartPointer

Finished the smart pointer implementation (for now).

Neglected to finish the wrap-a-pointer functionality.  The Make
functionality was complete, but forgot to flesh out the wrap-a-pointer
indirect block's class.

That's done now, so SmartPointer is done unless I decide to add
allocator/deleter support.