[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()`.

In theory this change should not break any existing code.

P.S. I have recreated this pull request due to a reorganization of my libs fork.

<!---
@huboard:{"order":111.0,"milestone_order":111,"custom_state":""}
-->