ctkLayoutManager was not properly cleaning the layout

clearLayout() was not deleting the layout elements (e.g. Splitters, QTabWidget)
created previously by setupLayout().
It was a problem when reparenting the views when applying the new layout in the viewport in setupLayout.
The reparenting of a QTabWidget child was setting the WA_WState_ExplicitShowHide flag on the widgets which
was preventing _q_showIfNotHidden() from setting the visibility of the child back at the next update.
Moreover the QTabWidgets and QSplitters were not destroyed until ctkLayoutManager was destroyed.
When clearing layout, it is enforced that the widgets don't redraw (QWidget::setUpdatesEnabled(false)) and the layouts don't resize (QLayout::setEnabled(false))to prevent flickering.
Merge branch 'ctklayoutmanager-cleanlayout'

* ctklayoutmanager-cleanlayout:
  ctkLayoutManager was not properly cleaning the layout
Created new CMake function for getting visibility compiler flags.

Hidden visibility is not yet enabled for Clang, since it has problems
with templates.
Added a operator< method to ctkVersion.
COMP: Add XMLDescription.xsd in Testing project configurations

The resource XMLDescription.xsd is required by ctkXMLEventSource.
Compile QtTesting with no Widget support

QtTesting requires Widgets to compile successfully
Merge branch 'qttesting'

* qttesting:
  Compile QtTesting with no Widget support
  COMP: Add XMLDescription.xsd in Testing project configurations
  Added new record behavior to QtTesting.
  Remove CMake message output in Widgets/CMakeLists.txt
  Fix XML validator if the application add new extra settings to record.
  Fix and Add functionalities to QtTesting :
  Install dir was not passed to QtTesting
  Add ctkQtTesting application
  Add QtTesting player/recorder in Libs/Widgets and VTK/Widgets
  Integrate the QtTesting framework into CTK: ctkQtTesting
  Apply CMake macro lowercase naming convention to cmake files
BUG: Fix save on an existing file when we use QtTesting

Bug fix in QtTesting. See commite :
https://github.com/benjaminlong/QtTesting/commit/75c24a70e9ca2acdb86fd204285747a756c0a7ce
BUG: Fix unique key to allow multiple appsetting elements for QtTesting

Each custom app setting is record with the element "appsetting"
To allow mulitple custom setting we add to the key the command associated.
Merge branch 'qttesting-overwrite-existing-file'

* qttesting-overwrite-existing-file:
  BUG: Fix save on an existing file when we use QtTesting
Merge branch 'qttesting-mulitple-app-setting'

* qttesting-mulitple-app-setting:
  BUG: Fix unique key to allow multiple appsetting elements for QtTesting
Add ctkFontButton::fontTextFormat to customize font button text

Fix minor bugs (ctkFontButton(QFont...) constructor ignored the font)
 and improve testing framework
Merge branch 'ctkFontButton-textFontFormat'

* ctkFontButton-textFontFormat:
  Add ctkFontButton::fontTextFormat to customize font button text
Merge branch 'add-set-get-shellfont-to-ctkconsole'

* add-set-get-shellfont-to-ctkconsole:
  Added capability to change font of python shell.
Add cancel button in ctkSettingsDialog

Hide the reset button by default.
Add confirmation message box for Restoring Defaults in ctkSettingsDialog
Add RequireRestart property in ctkSettingsPanel/Dialog
The cursor is moved between the parentheses if parameters are detected every
time the autocompleter updates.

This was accomplished by adding a virtual method to the ctkPythonConsole
called cursorOffset, taking the completed string returned by the
autocompleter.  The cursor is offset to the left by the integer returned
by cursorOffset.

Cleaned up code, caught errors in pythonModule method.