refactor(frontends/lean/local_context): do not use references in the local context
refactor(frontends/lean/elaborator): move placeholder_elaborator to its own module
refactor(frontends/lean/elaborator): move coercion_elaborator to its own module
refactor(library/data/list/basic): cleanup

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(uti/sexpr/format): rename 'choice' function to 'choice_fmt'
refactor(kernel/constraint): allow choice function to return a updated substitution
refactor(kernel/constraint): allow choice function to return a updated substitution