problem.hh: add a new test.

Bug reported by @perrin-isir
problem.hxx: automatically cast constraints to a valid type to remove ambiguity.

Close #70
problem.hxx: add another test for boost::variant ambiguous conversions.

Test related to #26
problem.hxx: move Boost.MPL magic to detail.
problem.hxx: convert before copying vector of constraints.

Close #26.
tests/problem-cc.cc: add constraints to the test.
detail/utility.hh: regroup some metaprogramming functions.
Merge with latest changes from master.
Merge pull request #70 from bchretien/bug/boost-variant-ambiguous

Bug: ambiguous conversion of constraints