Initial Tortuosity module commit

So far the module is empty.
Add distance and inflection count metric

Add the two simple metric to the tortuosity module. Basically, the widget
calls the logic on the spatial object node depending on the selected
checkboxes.
Also add the Inflection points metric that show the inflection value at
each point of the vessel.
Add sum of angle metric to the tortuosity logic

Add the missing sum of angles metric to the tortuosity logic.
Take advantage of this to factorize some of the copy methods in a namespace
for clarity.
Add testing

Test for both a straigh line and a sinusoid.

This allowed to weed out some errors, particurarly:
 - Actually return whether the logic was successful or not

 - Make sure that SOAM computation is valid before computing the soam
result

 - Only compute the torsion angle if the vector it uses aren't null.
Otherwise normalizing them can possibly bring them back to life and create
aberrant results.

 - Improve Frenet frame computation when the acceleration is null. When
the acceleration is null, we previously did not check for inflection point
as we did not compute the Frenet's N vector. This could lead to inaccuracy
when the vessel is line-like around the inflection point as that inflection
would simply be skipped (acceleration is null following a perfectly sampled
line).
To remediate to this, we can compute the whole Frenet frame each iteration.
When the acceleration is null, we can rely on the other vector of the frame
to compute the N vector. This assumes that very little to no torsion around
the N vector happened, which we can reasonnably assert in an actual blood
vessel.

Change-Id: I84cf23e6487978444933e518ed9a70530bf33c27
Improve tortuosity module GUI
Merge pull request #350 from vovythevov/TortuosityModule

Tortuosity module