Use raw pointers as the map's keys

When a smart pointer is used as the key to a std::map, searching the map
using a raw pointer is very error-prone since (prior to C++14), all
std::map methods expect a key_type object to be created. To fix this, a
raw pointer is used as the key and the smart pointer is stuffed into the
value beside the Python object.

This is a latent bug that could be triggered by using
GetObjectFromPointer which it appears as though only SIP bindings, and
ParaView Qt stuff ever used.

Change-Id: I42cba81053908befe2c1eb4cbdb1fea676b79ce1
BUG: Fix NULL dereference in std::copy argument

Revealed by failed otherEmptyCell test on Debug Visual Studio build

Change-Id: I815eac0bdddd6f9cf1cd4a4bfaca8ecbbc61bc5f
Merge topic 'fix-python-util-object-tracking' into master

269cbea1 Use raw pointers as the map's keys
Merge topic 'fix-otherEmptyCell-test-timeout' into master

a847fb8a BUG: Fix NULL dereference in std::copy argument
ENH: Update documentation of vtkAlgorithm::DesiredOutputPrecision

Change-Id: I81c76e3cf8ba868817395798bf3db18511c22b28
ENH: Update vtkClipPolyData to support vtkAlgorithm::DesiredOutputPrecision

Change-Id: Icec5b91adaf564c156d1dd8c66f902e78dcf12c8
ENH: Update vtkDelaunay3D to support vtkAlgorithm::DesiredOutputPrecision

Change-Id: I85e068f76c8bd0638ef5d6b9ab73869f861c5dd6