vtkPythonCommand - Add support for additional call data types

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

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

Also added
 (1) convenience decorator 'set_call_data_type'
 (2) test checking CallDataType can be associated with observer callback

See inlined comments for more details.

Change-Id: I8b27ccca63b9a5a30e7a0cedda2b789f8f66e0e5
vtkPythonCommand - Fix indent and variable names

Change-Id: I7683ccf508906d3facd7e618eaaa5140e2d87c99
BUG: The method vtkClipPlanesPainter::UpdateBounds must not be implemented.

The clipping planes are in world coordinates and here we are in data coordinates.

Change-Id: Ibb693ab26ab4213dd0c699754adde3758bbb2185
Fix bad SetColor/GetColor interaction in vtkProperty.

The SetColor() method calls SetAmbientColor(), SetDiffuseColor(),
and SetSpecularColor() and each of these can potentially trigger
a ModifiedEvent.  However, if the ModifiedEvent callback calls
GetColor(), which it often will, this causes Bad Things to happen
because GetColor() calls ComputeCompositeColor() which re-computes
this->Color based on the values of AmbientColor, DiffuseColor, and
SpecularColor.  The fix is to make sure that Modified() is not
called until all of the ivars have been set.

Change-Id: I00a6799a1a9e31a6b28e102e11e4a6bd71f18d71