add missing headers
update simple_humanoid/bcalc.ref

in order to match the results expected for the variant generated from
urdf.
generate simple_* models with metapodfromurdf

It changes their definition a bit, but the physical system being
modelled is unchanged.
comment out the sample_5 model

because this model has more than 50 joints.
rewrite robot structure and algorithms

This commit changes the data structure of the robot in order to

 * factorize the joint classes

 * remove any state dependent data from the static part of the
   classes

 * remove the model-specific robot namespace (replace-it with a model-specific
   robot class). This will enable use to replace macros with tempates
   (for instance in benchmarks).

 * identify the nodes with integers instead of classes in traversal algorithms
   and visitors.

   pro:

    * easier to blend compile-time and run-time algorithms
    * similar to the boost graph way
    * similar to the book
    * ease the (future and probable) migration to algorithm-specific
      data-structures.
    * more flexible (identification is decoupled from implementation)

   con:

    * more typing
    * boost::fusion limits us to 50 joints (there are ways to circumvent this
      limitation or to avoid boost::fusion as a whole).

Instead of rewriting the structure of the sample models directly, the
robotbuilder library was used (and modified) to generate the new code.

Non constant data is stored in a boost::fusion::vector, with one element
per-link. Currently all elements have distinct types.

Fusion vectors are limited to 50 elements by default.
Hence our models are limited to 50 joints. It is apparently possible to
circumvent this limitation.

The structure is not fully statisfying yet. Current limitations:

 * the common part between joints and nodes is not fully factored out.
   We might want to store some of this data outside of the robot class,
   in an algorithm-specific data-structure.

 * We do not deal well with state-independant data which is not static.
   The only occurence of this is currently the axis member variable of
   the revolute RevoluteAxisAny joint. This variable is not static in
   the RevoluteAxisAny class, because several joints in the same robot can
   have different axes. Yet, since they do not depend on the state, we'd
   like to share them between several instances of the same robot.
   Maybe a solution is to split the Joint in a "JointSolver" and a
   "JointState". The joint solver whould hold the non-static axis
   member. The robot would keep the JointSolver object in static member
   variable.

 * a user cannot add a custom joint type easily if it has no default
   constructor (because that would require to tweak the node constructor)

 * I suspect we only half-use fusion::vector. Alas we carry its limitations.

 * the jac_point_* algorithms have not been ported yet (I foresee not
   particular problem)

Some impact on performance. For the simple-humanoid robot with mixed revolute
joint types, we have no impact

before:

    Model NBDOF : 35
    average execution time :
    jcalc: 1.8607µs
    bcalc: 2.21891µs
    rnea: 5.49543µs
    rnea (without jcalc): 3.43526µs
    crba: 7.14573µs
    crba (without jcalc): 5.06184µs
    jac_point_robot (without bcalc): 11.0414µs

after:

    Model NBDOF : 35
    average execution time :
    jcalc: 1.93902µs
    bcalc: 2.30014µs
    rnea: 5.46891µs
    rnea (without jcalc): 3.41593µs
    crba: 6.98962µs
    crba (without jcalc): 4.84599µs

but there is some on the other models.

Note also that:

 * the "positionInConf" member variable was renamed "q_idx".

 * the getTorques function (from tools/print.hh) was removed (is it
   useful?)

 * the dotS member of the joints was removed. Ii only exists as a

 * temporary in the FreeFlyerJoint class.

 * the simple_*.cc are in the "include/" directory instead of the "src/"
   directory. This is because I want these file to be easily overwritten
   by robotbuilder/metapodfromurdf, and it puts both the .hh and the
   .cc in the same directory, I'll fix it in the future.
remove unnecessary Eigen #includes
robotmodel: fix conversion warnings
spatial: fix style
cmake: fix header lists
initialize Fext (fix rnea)
Merge branch 'fusion' into qfusion