[1.2-dev] Better support for user-defined scalar_t in many_body_operator

For one of my projects I wanted to write something similar to many_body_operator, but with coefficients dependent on a parameter. I realized that one can achieve this goal with only a small modification to many_body_operator and a user-defined 'numeric' type as scalar_t.

Apart from the change of many_body_operator one needs a generic way to call `conj()` and `is_zero()`. My attempt to solve this problem is a new template class `triqs::utility::numeric_ops<T>`.

In theory this change should not break any existing code.