feat(library/tactic): add support for migratic tactic framework object between Lua states

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
doc(lua): add S-expression documentation

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
doc(lua): add options documentation

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(library/tactic): execute Lua tactics using coroutines

This is very important when several Lua tactics are implemented in the
same Lua State object.  In this case, even if we use the par
combinator, a Lua tactic will block the other Lua tactics running in
the same Lua State object.

With this commit, a Lua tactic can use yield to allow other tactics
in the same State object to execute.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
chore(tests/lua/threads): fix type in file name

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
chore(*): fix cygwin compilation errors

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