feat(frontends/lean/parser): add support for Lua expression code blocks

In expression code blocks, we do not have to write a "return".
After this commit, the argument of an apply command is a Lua expression instead of a Lua block of code. That is, we can now write

apply (** REPEAT(ORELSE(imp_tactic, conj_tactic, conj_hyp_tactic, assumption_tactic)) **)

instead of

apply (** return REPEAT(ORELSE(imp_tactic, conj_tactic, conj_hyp_tactic, assumption_tactic)) **)

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(library/tactic): compilation warning

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(kernel/builtin): add is_* functions

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(library/rewriter): add skeleton for depth rewriter
refactor(library/rewriter): have separate functions to build RW results from components
feat(library/rewriter): add apply_rewriter_fn skeleton
checkpoint for rewriter
checkpoint
checkpoint
checkpoint
fix(library/rewriter): extend context before process lambda/pi body
checkpoint
checkpoint