Begin Worflow 2.0 development

The workflow 2.0 is based of the worklow but use FEM technique to pose
the labelmap. The previous workflow is preserved under the name
SimpeWorkflow. For the history of this file, refers the to Workflow.py.
Massive refacoring of the workflow to prepare 2.0

Warning: This commits breaks everythings after the steps number 2.

The workflow is refactored to prepare the new bender workflow. The new
worflow has different steps that will depend on different CLIs. So far,
the first step hasn't changed.
The second step does change as the skin and bone model maker are removed.
They will be replaced by the meshing step from which the bone and skin
model will be extracted.
Superbuild cleaver library and create interface to API

Use a cli to interface with Cleaver.
Add material volume extractor.
Build addTetMeshingCLI on windows

This commits gathers the addTetMeshingCLI branch from Ricardo Ortiz and
the patched cleaved available on midas (http://packages.kitware.com/download/item/4621/Cleaver.tar.gz)
to build the CreateTetrahedralMesh and VolumeMaterialExtractor CLIs.
So far, no change has been made to the algorithms or their input/output.
It's just for compilation.
Merge branch 'addTetMeshingCLI' into Workflow2.0

* addTetMeshingCLI:
  Build addTetMeshingCLI on windows
  Add material volume extractor.
  Superbuild cleaver library and create interface to API
Adapt Change Label for tetrahedral meshing

The tetrahedral meshing needs 4 different labels: background, skin, bones
and muscle (all of which isn't background, skin or bone).
This change introduces a QTable widget that summarize what labels will
be change into what. This is less messy than having a line edit and a
qMRMLColorNodeComboBox for each type of label.
The code was thus refactored to account for these changes. Hopefully it
will be easier to add another type of label in the future if needed.
Integrate tetraheadral mesh to worklfow

This is a simple integration as the change label step does most of the
work of preparing the input for the meshing CLI.
Keep the input label value for the mesh material

The output tetrahedral mesh obtained has different material property that
depend on the label maps given to it. As of before, these labels where
given by the mesher, thus making it hard to identify the structural
correspondences in the mesh and the input labelmap.
This is done by going through the relabel map and the input image and
mapping the correspondences between the label.
Now, the material array of the output is controled by the input.
Clean up after execution to prevent memory leaks
Touchups for Create mesh step

Add the input combo box as a labelmap only combobox.
Prevent the MergeLabel module and the CreateMesh module to select their
output upon creation when they doso. This the next module that would react
to the node changed event to create an output with a name based on the
combo box's naming scheme and not the input.
Add bone volume material extractor to workflow

This steps takes care of extracting the tetrahedral mesh of the bones from
the entire tetrahedral mesh.
Add Skin volume material extractor step

This step is much similar to the extract bone step. The skin surface is
computed from the volume material extractor on the tetrahedral mesh
obtained on the merged labelmap.
Set the bone and skin models' color based on the labelmap

After the bone and the skin model are generated, automatically attribute
them the same color as the merged labelmap they originated from has.
For the skin, also make it transparent so we can see the bone.
Finally, hide the tetrahedral mesh input so it won't oscure the view..
Enable Toggle Skin Visibility button in armature step