ENH: Added methods enabling screenshot based testing

1. Added a new qSlicerCoreTestingUtility class that derives from
ctkQtTestingUtility and defines image comparison methods based on
vtkTesting.
2. Added functionality in ctkScreenshotDialog to control output
resolution of screenshot taken.
3. Added a new menu item under Edit menu in the Slicer app for saving a
test screenshot. This item invokes ctkScreenshotDialog with constrained
output resolution of 300x300.
ENH: Image compare to QWidget and transition to qSlicerCoreTestingUtility
Added slicer_add_qttest macro for automated testing

Added additional api to launcher options required for screenshot based
QtTesting. Addresses issue 2567.
BUG: Fixed minor issues with screenshot based testing

Added support for list of test scripts given to macro slicer_add_qttest
Slicer was closing prematurely as superclass method was called before
derived class method. (HandleCommandLineArguments)
Using qMRMLUtils method for converting from qImage to vtkImageData.
ENH: Enhanced the slicer testing architecture

Examples on use of the new testing macro and added new baseline images
for existing QtTesting tests.
Addresses issue 2567.
BUG: Transparency issues with vtkTesting and macro cleanup

Transparency is not supported by vtkImageDifference and hence when
vtkTesting does image comparison based on screenshots taken using
ctkScreenshotDialog, there can be errors in the regression test.
Cleaned up macros and renamed test-script option to xml-test-script.
Addresses issue 2567
ENH: Ability to fetch baseline images from Midas

Updated the slicer_add_qttest macro to use ExternalData.cmake to fetch
baseline images from Midas given an md5 checksum. The macro uses the
DATA{} syntax from ExternalData.cmake to refer to the content-link. The
DATA{} syntax expects a BaselineImage.png.md5 at the BASELINE_DIR
location to fetch the correct BaselineImage.png from Midas.
Addresses issue 2567
Changes according to CTK changes
ENH: Added one test target per module

Changed the ExternalData implementation to add one target for all tests of one
module.
Updated CTK to latest HEAD.
Added documentation for new test macro (slicer_add_qttest)
ENH: Python support, improved macro and demo test

Added python support to qSlicerCoreTestingUtility so that its methods are
available from python as well.
Renamed slicer_add_qttest macro to slicer_add_qttesting_test macro and moved it
to a new cmake file named SlicerMacroQtTesting.cmake.
Added a demo test for qttesting.
ENH: Enhancements to the QtTesting infrastructure

Made default screenshot size to be 1000 x 1000 to account for detail in
conventional Slicer layouts.

QtTesting temporary directory is now a fixed path:
    bld/Slicer-build/Testing/Temporary
This removes the additional commandline option for specifying the temporary
directory path.

QtTesting baseline image MD5 sums should now be stored under:
    src/Testing/Data/Baseline
This eliminates the need for specifying BASELINE_DIR as an argument to
SLICER_ADD_QTTESTING_TEST while adding a new test.

Overall, two arguments removed while adding a new test, making the user's job
a little easier. Renamed commandline options for qttesting that better
distinguish the options required to run a qttesting test.

The user can now run a qttesting test on the command line using the
following syntax:

"Slicer --testing --qt-testing --qt-testing-test-script myTest.xml
 --qt-testing-baseline-image myBaselineImage.png"
STYLE: Renamed commandline arguments

Renamed --qt-testing-test-script to --qt-testing-script and
--qt-testing-test-threshold to --qt-testing-threshold