refactor(lua): cleanup Lua bindings, and add accessor/tester to expr Lua API

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
style(util/sexpr): name convetion for enumeration types

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(lua): add fields method to sexpr Lua API

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(lua): replace lua_pushfstring with lua_pushstring

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(lua): cleanup Lua bindings

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
chore(lua): rename env() to get_env()

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(lua): make objects() and localobjects() methods return iterators in the environment LUA API

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
test(lua): expr LUA API test

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
test(frontends/lean): example mixing Lean and Lua

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(frontends/lean): return the operator associated with constant expressions that are names of builtin values

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(lua): add for_each to expr Lua API

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(lua): add abstract, instantiate, has_free_vars, lift/lower free_vars to Lua API

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(kernel/occurs): typos

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(lua): add occurs method to expr Lua API

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