changed all shared_ptr constructors/assignment operators to use initialisation lists.

made naming of "other" consistent.
moved "const" in declarations to where I like it.