vtkPythonCommand - Add support for additional call data types

This commit extends the mechanism added in 9366ca67 to support additional
data types.

Supported types now includes 'string0', 'vtkobject', 'int', 'long',
'double' and 'float'.

Also added convenience decorator 'set_call_data_type'

See inlined comments for more details.

The integration in VTK proper has been proposed here:
http://review.source.kitware.com/#/t/3966/

Change-Id: Ie6bebf6777033b85c0469399972a4d0aeb1ad40f
Merge branch 'python-command-support-additional-call-data-types' into slicer-v5.10.1

* python-command-support-additional-call-data-types:
  vtkPythonCommand - Add support for additional call data types

Change-Id: I1157da598671e9b22842530e3277355ebe488d4e