test/common.hh: fix test suite name
compareLogs: iterate over reference instead of result

Otherwise an empty result is reported as identical to a non-empty reference.
getNextDouble: style fix
test: add CURRENT_MODEL_IS_* macro
jac_point_chain: typo
jac_point_chain: simplify handling of bcalc param

This way of handling the parameter removes duplication,
and is thus much easier to read. I don't think it would
add any overhead.
jac_point{,_chain}: do not reset the jacobian

setting the whole jacobian to zero at each cycle seems like a waste
of cpu: some blocks will always be zero and won't be touched by the
algorithms and the others will be overwritten anyway.

Given the user creates the jacobian, I'd say it is its responsability
to initialize it properly.

Moreover, depending on the offset and includeFreeFlyer parameters
I suspect we reset parts of the jacobian that the user might have carefully
initialized, forcing him to initialize them again at each cycle.
jac_point_chain: change log file name
move jac_point_chain_robot into the test source

in order to make jac_point_chain easier to understand, and since it is
only usefull for tests.
add jac_point_chain tests

The reference files added by this commit have not been hand-checked, but
are still needed to avoid future regressions.

Note that tests/data/simple_arm/jac_point_chain.ref is non-sensical,
because the jac_point_ref algorithm is designed for robots with a
free-flyer root joint.
add compareTexts helper function
add depth_first_traversal algorithm

First traversal algorithm. The hook names discover and finish are
inspired by boost::graph.

There are still some open questions:

- the traversal algorithm has some of duplication because it has to
  support overloads. Is there a better way? (one solution would be to
  resort to preprocessor tricks or to boost::preprocessor).

- Should we support const ref overloads too?
implement printTransforms with a visitor

I checked that it does not impact compile time.
implement printState with a visitor
add is_ancestor tool

this algorithm helps when checking user input and can also
replace a part of deepest_common_body
implement backward traversal

The Node template argument is actually a Body type. But, in the future,
the Node type will know its parent, so it will indeed be a Node.
add brackward_traversal_prev

This traversal traverses the tree backward and provides the
visitor with both the Node being visited and the previous one.

It is needed for crba. Contrary to backward_traverse, this
algorithm does not visit the StartNode, because the "PrevNode" parameter
would not have any sense.
implement crba using visitors

I checked that it has no impact on performance.
implement rnea with a visitor

The implementation is rather contrived because we need to
differentiate between root bodies and others.

We could make it more simple by changing depth_first_traversal
so that visitors take two template parameters: Node and PrevNode
similarly to backward_traversal.

PrevNode would be the parent of Node. It would le us specialize
easily the case of a root node:

    template <Node, PrevNode> struct Visitor;
    template <Node> struct Visitor<Node, NP> {};

Yet this modification would not cover the child-less node special
case:

on can imagine that in a recursive algorithm, when visiting a node
some work is done to prepare the children visit. It would be great to
skip this work when the node has no child.
add deepest_common_ancestor

a rewrite of deepest_common_body to compare type instead of labels.