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
Merge topic 'fix-python-util-object-tracking' into master

269cbea1 Use raw pointers as the map's keys