Add a smartpointer for PyObjects

This refactors the SmartPyObject class from a local class in
vtkMatplotlibMathTextUtilities.cxx to be externally visible.  This class
is duplicated several places in Paraview and this refactor will allow
code to be shared between all places that need it.  It is added to the
vtkWrappingPythonCore module as the vtkSmartPyObject class.

This commit also refactors the vtkPythonAlgorithm to use the new smart
pointer.

This commit is part of a change to ParaView and thus the topic name
reflects that change and not the change to VTK.

Change-Id: If3f0387bb7bb24f823dbe690e64a0a8bb1e0df16
Merge topic 'python_syntax_highlighting' into master

f9a208d6 Add a smartpointer for PyObjects