feat(frontends/lean): add option pp.purify_metavars

It is true by default. If the user sets it to false, then
the internal metavariable names are used in the pretty printer
feat(frontends/lean): add elaborator.trace_instances option

When on this option allows us to visualize "class-instance resolution"
fix(frontends/lean): include position information
feat(frontends/lean): include file-name and line/col numbers when displaying class-instance resolution trace
feat(frontends/lean/placeholder_elaborator): add option 'elaborator.instance_max_depth'
feat(frontends/lean/placeholder_elaborator): include type in class-instance resolution trace
feat(frontends/lean/placeholder_elaborator): include type in class-instance resolution trace