refactor(assumption_justification): move to the kernel

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(kernel/expr): add new mk_app template for creating applications using a collection

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(kernel/metavar): add normalize assignment justification

We need that when we normalize the assignment in a metavariable environment.
That is, we replace metavariable in a substitution with other assignments.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(library/elaborator): improve simple_ho_match

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>