Moved MultiCamViewer to same level as main.

MultiCamViewer is the main class so it is clearer for the viewer if it is
in the same level as main.cpp
skeletonization3d added new merge method.

This new method takes all the points from all the views. It does not actually
do any merge
BonePosFinder divided find_leg_lower_3_joints_line_fitting in several methods.

find_leg_lower_3_joints_line_fitting code was quite big now it is better
divided in meaninful submethods.
Node encapsulated length and offset inside getters and setters.

Needed for data encapsulation.
Node added method get_length() to avoid calculating lengths.

Bone length is not likely to change so better to have catched its size
Fixed out of range error on EnhancedIKsolver.

When solve_chain_keep_next_bone_pos would fail to put the next bone back to
where it was previous_rotations would be overwritten and with a smaller size.
Fix error on add bone to chain in IKSolver.

The bone offset was not being changed to KDL coordinate system.
It used to work because luckily the x axis was the same but now
we have x, y, z bone offsets.
Fix axis rotation.

Blender uses a rest mode with rotations set to 0 degrees so in order to do be able
to do skinnig with Blender we need the skeleton to be set in a proper initial
position with 0 rotations. That leads to bones not being align with an axis.
To fix that on the rendering we show artificial rotation axis intuitive for the user
eg along the bone but internally we maintain arbitrary rotations.
Small code optimization on Node optimize_rotation
Multicamviewer divided code to get user points in two methods.

This is the first step to make a easy to use tool to gather some
ground truth data
Added several typdef boost::shared<Type> TypePtr

boost::shared<Type> tends to be a rather long type descriptor.
Also this allows for easier changes if we switch from boost
to another pointer library.
Added GroundTruth class.

This class will be in charge of collecting, saving and loading ground truth
points selected by the user. Also will have methods for calculating the
error between those points and the current skeleton position
GroundTruth added methods for saving and loading the data.
GroundTruth finished seting, geting, loading and saving points.

Also fixed all rendering issues with the points