ctkSettingsPanel - Trigger registered signal only if needed

QTextEdit triggers the "textChanged" signal when the user types a
character. Since after triggering the signal the widget text was reset
and the caret was repositioned at the end of the string, this was
making it very hard to update settings.

See http://www.na-mic.org/Bug/view.php?id=1904

See #359
Merge branch '359-settings-panel-trigger-signal-only-if-needed'

* 359-settings-panel-trigger-signal-only-if-needed:
  ctkSettingsPanel - Trigger registered signal only if needed
Extend error log API so that observer can be notified of new log entries

Fixes Slicer issue:
  http://www.na-mic.org/Bug/view.php?id=1349
  http://www.na-mic.org/Bug/view.php?id=2537
Merge branch 'tweak-error-log-api'

* tweak-error-log-api:
  Extend error log API so that observer can be notified of new log entries
Add ctkDICOMUtil and ::setDICOMLogLevel helper

This function allows to set the DICOM log level for
diagnostic purposes.
Define ctkErrorLogLevel::logLevelAsString as static for easier re-use

Explicitly add associated decorator. See code comment for explanation.
Re-factor ctkDICOMUtil to be consistent with ctkUtil

Add the methods dicomLogLevel and setDICOMLogLevel to "ctk" namespace

Update PythonQt external project to include fix allowing to wrap
QFlags.

The DICOM log level can be set from python doing:

 >>> import ctk
 >>> ctk.ctk.dicomLogLevel()
 16
 >>> ctk.ctk.dicomLogLevelAsString()
 u'Info'
 >>> ctk.ctk.setDICOMLogLevel(ctk.ctkErrorLogLevel.Critical)
 >>> ctk.ctk.dicomLogLevel()
 256
 >>> ctk.ctkErrorLogLevel.logLevelAsString(ctk.ctk.dicomLogLevel())
 u'Critical'
 >>> ctk.ctkErrorLogLevel.logLevelAsString(32)
 u'Warning'
 >>> ctk.ctk.setDICOMLogLevel(64)
 >>> ctk.ctk.dicomLogLevelAsString()
 u'Error'
Merge branch 'add_dicomutil'

* add_dicomutil:
  Re-factor ctkDICOMUtil to be consistent with ctkUtil
  Define ctkErrorLogLevel::logLevelAsString as static for easier re-use
  Add ctkDICOMUtil and ::setDICOMLogLevel helper
Exclude variable name from *_{INCLUDE,LIBRARY}_DIRS variable

Before this commit, the list of include or library directories was
containing the name of the variable to be expand.

For example, the value for "VTK_LIBRARIES" was

  [VTK_LIBRARIES] Appended dirs: VTK_LIBRARIES;/home/jchris/Projects/Slicer-AHM-Superbuild-Release/VTK-build/bin

whereas the following was expected:

  [VTK_LIBRARIES] Appended dirs: /home/jchris/Projects/Slicer-AHM-Superbuild-Release/VTK-build/bin
Better verbose output for "*_{INCLUDE,LIBRARY}_DIRS" variables update

If possible associated the output with the name of the package.

For example "VTK" will be used instead of "VTK_LIBRARIES"
Do not append non-existent directory to "*_{INCLUDE,LIBRARY}_DIRS" variables

This is particularly useful when building against library that are not
always defining a "<project_name>_LIBRARY_DIRS" variable. This commit
avoids appending a variable name to the list of possible directories
that should be considered.

For example, within ITKv4, the variable ITK_LIBRARY_DIRS is not
always set. See here for more details: https://issues.itk.org/jira/browse/ITK-3026
Merge branch 'avoid-varname-in-dirs-variable'

* avoid-varname-in-dirs-variable:
  Do not append non-existent directory to "*_{INCLUDE,LIBRARY}_DIRS" variables
  Better verbose output for "*_{INCLUDE,LIBRARY}_DIRS" variables update
  Exclude variable name from *_{INCLUDE,LIBRARY}_DIRS variable
BUG: Hide error log "threadid" column by setting model column count

If not setting the column count, the column can be hidden only after
data have been inserted. As a consequence, within the error log widget,
the column is visibility is set only after the error log model is set.
ENH: Add convenience method allowing to show/hide any error log column.
Merge branch 'fix-threadid-errorlog-column-visibility'

* fix-threadid-errorlog-column-visibility:
  ENH: Add convenience method allowing to show/hide any error log column.
  BUG: Hide error log "threadid" column by setting model column count
Extend ctkDirectoryButton to optionally filter out readOnly folders.

For details see comment associated with acceptMode property.

See also CTK issue #365

Co-authored-by: Jean-Christophe Fillion-Robin <JChris.FillionR@kitware.com>
Merge branch '365-filter-out-read-only-directory'

* 365-filter-out-read-only-directory:
  Extend ctkDirectoryButton to optionally filter out readOnly folders.
Fix copy/paste in ctkConsole

In addition to support paste from Ctrl+V, it now supports any paste
(e.g. with middle mouse button).
Also, the behavior is changed to now support Ctrl+V even when
the cursor is in the history area. Pasted text is appended at the end of
the document.

Closes #294
Add private implementation to ctkCoordinatesWidget

Closes #355
Merge branch '355-ctkcoordinateswidget-pimpl'

* 355-ctkcoordinateswidget-pimpl:
  Add private implementation to ctkCoordinatesWidget