STYLE: Use copy-swap idiom for SmartPointer
STYLE: Use copy-swap idiom for SmartPointer

Improve the implementation to follow best practices with the copy-swap
idiom for the regular and the move assignment operators. This approach
reduces code, improve maintainability, and is less error prone.

A subtle implementation note is that the assignment operator no longer
takes a reference to the operand, instead it is implicitly copied.

Change-Id: I9a63909daea3717dd91e52664ac3cc64c440aa8e

blowekamp/ITK,vfonov/ITK,LucasGandel/ITK,hjmjohnson/ITK,vfonov/ITK,LucasGandel/ITK,InsightSoftwareConsortium/ITK,malaterre/ITK,hjmjohnson/ITK,LucasGandel/ITK,fbudin69500/ITK,Kitware/ITK,stnava/ITK,stnava/ITK,thewtex/ITK,stnava/ITK,InsightSoftwareConsortium/ITK,vfonov/ITK,InsightSoftwareConsortium/ITK,vfonov/ITK,BRAINSia/ITK,malaterre/ITK,vfonov/ITK,malaterre/ITK,vfonov/ITK,malaterre/ITK,spinicist/ITK,thewtex/ITK,spinicist/ITK,stnava/ITK,Kitware/ITK,hjmjohnson/ITK,thewtex/ITK,InsightSoftwareConsortium/ITK,spinicist/ITK,Kitware/ITK,thewtex/ITK,blowekamp/ITK,richardbeare/ITK,malaterre/ITK,spinicist/ITK,fbudin69500/ITK,Kitware/ITK,fbudin69500/ITK,stnava/ITK,spinicist/ITK,thewtex/ITK,blowekamp/ITK,malaterre/ITK,stnava/ITK,BRAINSia/ITK,BRAINSia/ITK,LucasGandel/ITK,malaterre/ITK,hjmjohnson/ITK,stnava/ITK,stnava/ITK,thewtex/ITK,thewtex/ITK,BRAINSia/ITK,fbudin69500/ITK,spinicist/ITK,richardbeare/ITK,InsightSoftwareConsortium/ITK,LucasGandel/ITK,hjmjohnson/ITK,vfonov/ITK,stnava/ITK,richardbeare/ITK,blowekamp/ITK,BRAINSia/ITK,fbudin69500/ITK,LucasGandel/ITK,vfonov/ITK,malaterre/ITK,spinicist/ITK,blowekamp/ITK,hjmjohnson/ITK,fbudin69500/ITK,spinicist/ITK,fbudin69500/ITK,InsightSoftwareConsortium/ITK,richardbeare/ITK,LucasGandel/ITK,BRAINSia/ITK,InsightSoftwareConsortium/ITK,fbudin69500/ITK,blowekamp/ITK,BRAINSia/ITK,hjmjohnson/ITK,blowekamp/ITK,Kitware/ITK,richardbeare/ITK,LucasGandel/ITK,Kitware/ITK,malaterre/ITK,spinicist/ITK,vfonov/ITK,blowekamp/ITK,Kitware/ITK,richardbeare/ITK,richardbeare/ITK