PERF: add namespace swap to SmartPoitners

The swap method avoids the cost of 4 atomic integer operations used
for reference counting. STL algorithms use argument dependent look up
to utilizes user swap functions.

With out modification ITK utilizes this method over 13,000 times:
http://open.cdash.org/viewCoverageFile.php?buildid=3252170&fileid=11437311

Change-Id: I12778a01bc103447a5c555043931c42dd3cd8477
PERF: Use stl iterator algorithm in Iterator Partitioner

These algorithms are optimized to be constant time for random access
iterators. Also the re-use and reduction of code is good.

Change-Id: I8d76dd0e76eb4a72341ab35c58409f9d8b697e42
Merge topic 'AddSwapToSmartPointers'

41f8081b PERF: add namespace swap to SmartPoitners
Merge topic 'UseSTLIteratorAlgorithms'

4df8d4f6 PERF: Use stl iterator algorithm in Iterator Partitioner