Fix qDebug operator to handle case when VTKObject is null

In case the debug statement is used in the destructor, this commit
will prevent the application from crashing.
Improve documentation of setStrictTypeCheck() method
Remove unused signal "isBroke()"
Refactor ctkVTKConnectionTest1 for easier maintenance and readability
Update ctkVTKConnectionTest1 to use ctkCallback

By using ctkCallback instead of QTimer, we can associate
a function that increment a counter each it is invoked. This
allows to check that the Qt slot or VTK callback have been invoked.

This commit also compute the stats associated with the connection5.
Update ctkVTKConnectionTest1 to allow each test case to be run independently

This is particularly useful when instrumenting the code and running
callgrind on each test case independently.
Split disconnect function
Allow ctkVTKConnection pimpl to be subclassed

This can be useful for both providing a custom implementation and for testing.
Add method to return VTK object associated with ctkVTKConnection
Add ctkVTKConnectionTestObjectDelete
Fix ctkVTKConnectionTestObjectDelete

* Use vtkWeakPointer to track the VTK object. The observation of the
DeleteEvent is now required only to disconnect the Qt slots. Using a weak
pointer also ensure that the pointer to VTK object will be set to zero
with/without observing deletion.

* Simplify ctkVTKConnection: There is not need to explicitly disconnect
slots when object is deleted. Indeed, according to Qt documentation, "all
signals to and from the object are automatically disconnected" there is no
need to explicitly disconnect them."
[1] http://qt-project.org/doc/qt-4.8/qobject.html#dtor.QObject

By also removing the call to 'disconnectSlots' in the 'disconnect()' function,
it resolves Slicer issue #3361 [2] where it was reported "No such slot" error.
Since the disconnect happened in the connection destructor and the connection
were destroyed in the base class but the slot belonged to the derived class,
this explained the error message.

[2] http://www.na-mic.org/Bug/view.php?id=3361

* Simplify ctkVTKConnection: There is no need to explicit remove VTK
observers where connection is deleted. Indeed, observers of a VTK object
are automatically removed when an object is deleted.
Improve performance disabling "deletion" observation

Now the VTK pointer is set to zero independently of the DeleteEvent
observation, the observation is only needed to explicitly
disconnect the Qt slots. Since keeping the connected slots around doesn't
impact performance, this commit disabled the "deletion" observation.

If needed, a future additional improvement would be the pruning of
connection there are associated with deleted VTK object. This could be
done in the same loop taking care of shadow connection.

Results of ctkVTKObjectTest1:

[ObserveDeletion = true]
148: Create  10000  connections...
148:   elapsed time:  3.06955 seconds
148: Remove  10000  connections...
148:   elapsed time:  3.44588 seconds

[ObserveDeletion = false]
148: Create  10000  connections...
148:   elapsed time:  0.775543 seconds
148: Remove  10000  connections...
148:   elapsed time:  0.760212 seconds
Fix ctkVTKConnectionTest1 removing connection time ratio test

As discussed in [1], the test should check that the code works
as expected and not set a bar that we cannot yet attain.

[1] https://github.com/commontk/CTK/pull/378#issuecomment-42436579
ENH: Pass Qt CMake variable using "mark_as_superbuild"

For sake of consistency, this commit update the system so that both
Qt4 and Qt5 variable are pass to the CTK inner build using the
same mechanism.
Fixes configuration when enabling PythonQt wrapping

This commit fixes the incorrect Qt version check
introduced by commit 47b34216.
Merge branch 'fix-configure-with-pythonqt-wrapping'

* fix-configure-with-pythonqt-wrapping:
  Fixes configuration when enabling PythonQt wrapping
  ENH: Pass Qt CMake variable using "mark_as_superbuild"
Remove extra CMake debug statement introduced by commit 47b34216
Merge branch 'fix-configure-with-pythonqt-wrapping'

* fix-configure-with-pythonqt-wrapping:
  Remove extra CMake debug statement introduced by commit 47b34216
Merge remote-tracking branch 'jcfr/REBASED-3361-tweak-ctkVTKConnection-with-benchmark'

* jcfr/REBASED-3361-tweak-ctkVTKConnection-with-benchmark:
  Fix ctkVTKConnectionTest1 removing connection time ratio test
  Improve performance disabling "deletion" observation
  Fix ctkVTKConnectionTestObjectDelete
  Add ctkVTKConnectionTestObjectDelete
  Add method to return VTK object associated with ctkVTKConnection
  Allow ctkVTKConnection pimpl to be subclassed
  Split disconnect function
  Update ctkVTKConnectionTest1 to allow each test case to be run independently
  Update ctkVTKConnectionTest1 to use ctkCallback
  Refactor ctkVTKConnectionTest1 for easier maintenance and readability
  Remove unused signal "isBroke()"
  Improve documentation of setStrictTypeCheck() method
  Fix qDebug operator to handle case when VTKObject is null
Update CTKWidget PythonQt decorator to fix build error following Qt5 transition

This commit fixes build error introduced by f49c19a when moving
ctkErrorLogModel from Core to Widget library.