Initialize repository

The structure of the application is intented for users to be able to
easily create a slicer-based custom application with little renaming while
keeping a source repository clean.
Add TubeTK as external project

TubeTK is built by Slicer. None of its modules
are built with it. Their build is delegated to Slicer which add them as
Slicer_EXTENSION_SOURCE_DIRS.
Merge branch 'external-tubetk'

# By Johan Andruejol
* external-tubetk:
  Add TubeTK as external project
Add Prometheus workflow
Load Data Step:

Uncomment load volume button actions
Register Step:

The Register Step uses the two given images and co-registers them.
Since we are using BRAINS for the registration, we need to build it with
Slicer.
The Register Step was thus fitted to use the BrainsFit CLI. So far the
options allowed are limited to the inputs as the module used might be
changed in the future.

This is also the occasion to add some infrastructure to the WorkflowStep
and the Workflow. A progress bar is added above the advanced panel.
Segmentation Step:

This step is right now fairly empty. It will be filled later with the
Editor modules
Vessel Extraction Step:

Mostly empty for now.
Fix comboboxes sizing.

The comboboxes on the same row as save button or open folders are enlarged
beacause of the icon size. It causes a displeasing discrepancy in the
display.
Add choice of registration type

Add a combobox for the user to choose the registation type in advanced mode
Automatically guess registered image pixel type

The BrainsFit module allow the user to choose the output registered image
pixel type. By default it is float.
To be more transparent, the output image pixel type is now guessed based on
the input moving image type.
Shorten output volume suffixes

After adding numerous suffixes to the output, the names start to grow a bit
too much. Shortening the suffixes will help that.
Update slice views function

For clarity and convinience for the user, the slice views are updated when
the modules has finished.
Plug memory leak

The ctkWorkflow didn't have any parent causing it to linger around with
its steps after closing the application. Adding the parent of the module
fixes this.
Add initial step

The initial step is in charge of choosing what kind of analisys will be
performed in the workflow. For each of these analysis, a json file will be
added in the resources to help the CLIs.
Right now there are now json files, so Readme are added to make sure the
folder are taken into account by git.
Update workflow GUI from CLIs

The workflow was already updating the CLIs in slicer with its own
parameters. Now, the workflow GUI can update itself from the CLIs it uses
by overloading the method updateFromCLIParameters(). This method is called
by the workflow on the steps everytime the worflow module is shown. The
default implementation in WorkflowStep does nothing. So far, this only
applied to the RegisterStep.

Also, instead of using BrainsFit, the registration uses the cli
ExpertAutomatedRegistration.
Add Resample Step

The resample step is in charge of making sure the input image is isotropic
so the rest of the algorithm can work better. It uses TubeTK's resample
image filter with the option isotropic.
If the input image happens to be isotropic, the user is prompt a question
to make sure he wants to resample anyway. In that case, the step is
automatically validated
Add Editor to SegmentationStep

The editor is added as a widget here. So fare, this step has the following
properties:
The master volume is controlled by a combobox (advanced mode) and the
register step output.
OnEntry(), the master volume is set so the pop up window doesn't appear
before arriving in the module.
Upon setting the master volume, the step looks for the merge volume by
searching through the scene for a node that has a corresponding name. This
is the merge node and is selected in the combobox.
The step itself is validated only if the current merge node has more than
2 labels. This is done by verifying that the range min and the range max
of the image scalars are different.
Reword Initial Step description

Change to include the word preset and tasks.
Fix update view in Load Data Step

The view didn't update when changing the combobox current node, only when
a new image was added.
Now it's changed everytime a combobox node is changed.