ENH: adding SimpleFilters as internal modules via externalproject

Following the example of MultiVolumeImporter, a new external project
was added to download the SimpleFilters repository, the source
directory is propagated into the Slicer project and it is added as a
sub-directory to the build in scripted modules.

From: Bradley Lowekamp <blowekamp@mail.nih.gov>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22201 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: #2739: Add configuration of two slice viewers

Added layout with just two slice viewers arranged side by side

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22202 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix Qt designer crash when dropping spinbox in collapsible widget

Closes #2009

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22203 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add SHIFT support to change file type to checked files.

Holding the shift key when changing the file type changes the other checked
files of same type to the new file type.
Closes #3109

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22204 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: add a utility method to add a new fiducial

Prevents memory leaks and error messages from adding a fiducial
and a display node. 

For access from python, use:
fidID = slicer.modules.annotations.logic().AddFiducial(10.0, -50.0, 8.8, 'P1')
fidNode = getNode(fidID)

Resolves issue #3138



git-svn-id: http://svn.slicer.org/Slicer4/trunk@22205 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: add tool tips to the clipping widget

Explain what is meant by the clipping terms and positive/negative
spaces.

Issue #2560



git-svn-id: http://svn.slicer.org/Slicer4/trunk@22206 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: update clipping documentation

Use the text strings from the MRML clip node widget.

Issue #2560



git-svn-id: http://svn.slicer.org/Slicer4/trunk@22207 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Cleanup shortcuts(actions) dialog

Closes #1819

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22208 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: "Add data" shortcut is CTRL+O or CTRL+A, and not "CTRL+O + CTRL+A"

Closes #1819

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22209 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add write support for MRC files

Closes #1815

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22210 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: expose the label value for the model to label map CLI

Updated the documentation link and updated the wiki pages to 
include the new parameter.

Resolves issue #3233



git-svn-id: http://svn.slicer.org/Slicer4/trunk@22211 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix decimals in volumes module

Loading MRHEAD, we want the default coordinates to be:
 - spacing: 1.0, 1.0, 1.3
 - origin: -86.645, 133.929, 116.786 if the length unit precision is 3
Issues #2480, #2986, #3074...

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22212 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Block/Redirect display node events in CLI node writing

Closes #2966, #2915

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22213 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix compilation warnings with static char* reference strings

The warning:
vtkMRMLStorableNode.h:154: warning: the address of ‘vtkMRMLStorableNode::StorageNodeReferenceRole’ will always evaluate as ‘true’

When replacing char [] into char*, the new warning is:
/.../vtkMRMLStorableNode.cxx:27: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

When replacing char* by const char*, vtkGetStringMacro can't convert
from const char* to char*.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22214 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add search box in models module

Closes #1530

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22215 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Expose scrollTo() to qMRMLTreeView

So that other modules could conveniently use.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22216 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: #2326 Fix tests and ENH: refactor sample data

The bug refers to failures of the py_vtkITKArchetypeScalarReaderFile
and py_vtkITKArchetypeDiffusionTensorReaderFile tests after
commit [1].  These tests relied on a side-effect of downloading
the sample data in order to determine the file to load
data from, but this was not reliable since the data was in a temp
directory.   Now the tests request the download directly.

The enhancement is that the sample data module now supports the
concept of categories of sample data sources, such that modules
can register their sample data.  This way a version of slicer can
offer sample data appropriate for use with the particular extensions
that have been installed.

[1] http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=22162

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22217 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: update Model to Label Map xml file docs

More testing showed that the output volume will always be cast
to unsigned char, so limit the label value to 0-255 and
give the user some hints about good models to use.

Issue #3233



git-svn-id: http://svn.slicer.org/Slicer4/trunk@22218 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Simplify zlib external project

Added SLICER_ZLIB_LIBRARY_DIR CMake variable
ENH: Add SSL support

Having the application interacting with services or downloading resources
served over https protocol is now required. More particularly,
it became necessary to access resources stored on Github (extension
manager - issue #2354) or to download python packages from pip server
at run time.

Building OpenSSL
================

On Windows, since Perl is required, OpenSSL binaries have been
generated and uploaded on kitware packages server. See [1]

The project allowing to re-generate the Windows OpenSSL archive is currently
hosted here [2].

On unix-like system, OpenSSL is built has part of the Superbuild. To ensure
is can be built in parallel, a patch is also applied [3].

Finally, since python is built with OpenSSL support, the python launcher
is now configured on all platform so that python can properly load the built
OpenSSL shared library when it is used to build project like numpy.

[1] http://packages.kitware.com/packages/application/view?applicationId=20
[2] https://gist.github.com/jcfr/6030240
[3] https://raw.github.com/Alexpux/Qt-builds/master/patches/openssl/openssl-1.0.1-parallel-build.patch

OpenSSL support in Qt, python, curl
===================================

Practically, it means that library like Qt, python, curl need to be
built with OpenSSL support.

This commit only address OpenSSL support for Python and Qt.

Curl support is not yet enabled.

For Qt OpenSSL support, Qt has to be built with the flags:
  -openssl
  -I /path/to/OpenSSL/include
  -L /path/to/OpenSSL/lib

On unix-like system, available binaries are already OpenSSL ready, Qt
has to be explicitly built only on windows. On windows, Qt will have to
be built.

Certificates
============

In case X.509v3 certificates are available on the system where Slicer is
executed, a certificate bundle "Slicer.crt" is also provided. The set of
scripts allowing to generate the bundle are provided by BLFS
(Beyond Linux From Scratch).
More details in Base/QTCore/Resources/Certs/README

Application integration
=======================

The Slicer core application will load the Slicer.crt bundle if needed.

qSlicerExtensionsInstallWidget now derives from a re-usable widget
named qSlicerWebWidget.

qSlicerSslTest has been added to check that "https" connection can
be established using Qt library.

Fixes #2998
Fixes #2355
Fixes #2354