New callback API

I implemented a new generic callback that allows more information from the solver to be made accessible by the RobOptim user.

A few things still need to be done:
 * handle argument bounds when computing constraint violation,
 * test the parameters map (for now I only tested `x`, `cost` and `constraintViolation`).

I tested this with the Ipopt plugin (constrained dense/sparse) and the Eigen plugin (unconstrained dense). For the latter, I relied on SFINAE with `boost::enable_if` since `problem_t` does not have a `constraint_t` type. There must be a way to have something cleaner, but it should work for the time being.

cc @jorisv @stanislas-brossette