refactor(kernel/formatter): move simple_formatter to library

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(library/simple_formatter): rename simple_formatter to print

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(kernel): move annotation to library

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(library): add typed_expr macro

We use it to enforce that a let-variable has the expected type

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(library): add typed_expr macro