feat(kernel/metavar): is instantiate_metavars, we are also instantiating assigned metavariables that occur in the local context of unassinged ones.

This modification improves the effectiveness of the process_metavar_inst procedure in the Lean elaborator.

For example, suppose we have the constraint

   ctx |- ?M1[inst:0 ?M2] == a

If ?M1 and ?M2 are unassigned, then we have to consider the two possible solutions:

        ?M1 == a
    or
        ?M1 == #0 and ?M2 == a

On the other hand, if ?M2 is assigned to b, then we can ignore the second case.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
test(tests/lean): new test full of holes

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(builtin/Nat): leq axiom, and some theorems

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(builtin/Nat): leq axiom, and some theorems