Fix dynamic computation of recargs for mutual inductives.

Used by the new guard criterion compatible with type isomorphisms.
Improve intersection of regular trees.

For better efficiency, we try to preserve the shape of mutually recursive
trees.
Optimize check of new subterm relation on match.

If the return predicate is not dependent, we avoid dynamically regenerating the
regular tree of the corresponding inductive type. This includes the commutative
cut rule. Should solve some performance issues observed in Compcert and Paco at
Qed time.
Adding a generalized version of fold_Equal to FMapFacts.
This commit should be refactored by Pierre L. if he thinks this should
replace the previous version of fold_Equal, for now it is a different
lemma fold_Equal2. Same for the Section addded to SetoiList, it should
maybe replace the previous one.
Add an option to solve typeclass goals generated by apply which can't be
catched otherwise due to the discrepancy between evars and metas.
Consistent pretty-printing of primitive projections and their expanded forms.
Finish fixes on notations and primitive projections, add test-suite files for closed bugs