hilbert_space_tools: New method has_state()

Check if a state belongs to hilbert_space/sub_hilbert_space
state: function to project a state from one space to another
New method sorted_spaces::make_op_matrix()

* Creates matrix of an operators acting between two subspaces.
Some preliminary work on measure_static
Interface part for measure_static
Added accessor for trace matrices at root node of tree
Make get_trace_matrices function public
Done with a draft version of measure_static
Potential fix for trace_matrix issue
Fix a compilation issue on GCC
Workaround for GCC bug 52595

A.k.a. C++ Core Language issue 325

Refs:
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52595
- http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#325
- http://stackoverflow.com/a/23955214
measure_static: skip blocks with zero contribution to the trace
Specially treat the case of an empty trace
Split implementations of project() for hilbert_space/sub_hilbert_space

* Removed a check in the hilbert_space version
Unconditionally reject all moves with the weight below a given threshold

* New solve() parameter 'weight_threshold' (1e-8 by default).
Missing boost::variant converter in cthyb_desc.py
map() has been moved to the library
Merge branch 'igor' of github.com:TRIQS/cthyb into igor