ENH: Use a hashmap to avoid linear search for existing vtk connections
BUG: Fixed ctkVTKObjectEventsObserverPrivate::findConnection behavior for wildcards

When ctkVTKObjectEventsObserverPrivate::findConnection receives 0 parameter for an input then it cannot be used for retrieving an entry from the cache.
Then we have to do a linear search.
ENH: qvtkConnect and qvtkDisconnect performance improvement

Whenever a new connection is added or deleted, it's searched in the list of already existing connections using ctkVTKObjectEventsObserverPrivate::findConnection(). This findConnection() method is very slow if there are many connections, because the time-consuming ctkVTKConnection::isEqual() method is executed for each existing connection (before this commit, 40% of the time was spent in vtkConnection::isEqual while creating 10000 connections).

To solve this performance issue, added a ConnectionIndex structure, which stores a pointer to each connection object using a hash map. When searching for a fully specified connection, the ConnectionIndex is used to find the connection directly, instead of iterating through all the children.

Result of the optimization (ctkVTKObjectTest1):
Create 10000 connections: 2.343 sec => 1.019 sec (2.3x speed improvement)
Remove 10000 connections: 3.599 sec => 2.031 sec (1.77x speed improvement)

Conflicts:
	Libs/Visualization/VTK/Core/ctkVTKObjectEventsObserver.cpp
Merge branch 'vtkconnect-performance-improvement-consolidated'

* vtkconnect-performance-improvement-consolidated:
  ENH: qvtkConnect and qvtkDisconnect performance improvement
  BUG: Fixed ctkVTKObjectEventsObserverPrivate::findConnection behavior for wildcards
  ENH: Use a hashmap to avoid linear search for existing vtk connections
STYLE: removed trailing white spaces
#357 Add test that fails with current CTK

New file path should be used even if instance UID is already
in the database.
add a timer to quit the application

Fixes #385
COMP: do not use Qt macros in backported DCMTK code
Fix ctkDICOMAppWidgetTest1

Due to merge conflict the argument to the test wasn't being
passed.
Merge branch 'fix-failing-dicomapp-test'
fix name change ctkDICOMDatasetViewTest1 -> ctkDICOMItemViewTest1

Ctest was failig because the arguments referred to a test that
didn't exist anymore.
Find dcmtk helper apps for test

Fixes #387

Discovery of helper apps had been in FindDCMTK.cmake, but was omitted
from a previous refactoring.  Since FindDCMTK.cmake may be obsoleted
in the future, the test cmake code now finds the apps directly.
Merge branch 'fix-failing-dicomapp-test'
Fix color dialog test that never quits

Remove timer to avoid race condition so that test quits after
dialog is shown.

Fixes #385
Merge branch '385-color-dialog-hang'
Allow CmdLineModuleManager to clear cache
Don't update cache timestamp, if reading XML from cache
Reload all CLI modules
#357 Add test that fails with current CTK

New file path should be used even if instance UID is already
in the database.
STYLE: clarify that a variable is a query

Makes the code easier to read.