feat(frontends/lean): allow parser actions to be implemented using Lua

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(util/script_state): remove support for threads and communication channels from the Lua API, the goal is to keep is simple, and use one Lua state object per thread

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(shell): use system_import for lua files provided in the command line (i.e., their code will be available for all threads)

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(frontends/lean/parser): use system_import when processing Lean import command

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(tests/lua): remove os.exit(0), it does not work if it is executed in the scope of a lock

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(library/kernel_bindings): set_environment and set_io_state objects

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
test(lean): add simple example of notation implemented using Lua

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
test(lean): add simple example of notation implemented using Lua