Resolution of evar/evar problems: removed a test which should be
subsumed by the call to project_evar_on_evar.
Being consistent in making arbitrary choices in recursive calls to
evar_define.

Interestingly, the added choose in evarconv.ml allows solve_evar_evar
to be observationally commutative, in the sense of not either fail or
succeed in compiling the stdlib whether problems are given in the
left-to-right or right-to-left order.
Being more scrupulous on preserving subtyping in evar-evar problems.

Incidentally, this allows to make earlier the collapse of CUMUL to
CONV when force is true.
Postponing the "evar <= evar" problems instead of solving them in an
arbitrary direction as if it were an "evar = evar" problem.
When solving ?id{args} = ?id'{args'}, give preference to ?id:=?id' if
possible, which is the "natural" way to orient an equation. At least
it matters for matching subterms against patterns, so that it is the
pattern variables which are substituted if ever the subterm has itself
existential variables, as in:

Goal exists x, S x = x.
eexists.
destruct (S _).