fix(frontends/lean/inductive_cmd): improve name resolution in inductive
command

The new test demonstrates the problem being fixed by this commit
fix(frontends/lean/elaborator): more robust support for coercions to
function-class that contains implicit arguments
refactor(library/logic): move files in classes directory to core
refactor(library): rename algebra directory to struc, move categories.lean to algebra
fix(tests/lean/interactive): adjust test to library reorg
fix(frontends/lean/elaborator): coercion overloading
feat(frontends/lean): split 'opaque_hint' command into 'opaque' and 'transparent'

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(frontends/lean/server): add SYNC command, closes #199
fix(frontends/lean): assertion violations
fix(util/thread): MULTI_THREAD=OFF mode
fix(util): compilation problems when using msys2

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(emacs/lean-type): change where to trigger eldoc

Previously, eldoc is triggered regardless of current position.
Now, it is triggered:

 - *NOT* looking-at whitespace or
 - looking-back end-parens such as ')', '}', ']', etc
chore(.travis.osx.yml): update homebrew lua package names

lua5.1: lua            => lua51
lua5.2: versions/lua52 => lua
fix(util/thread_script_state): make sure system does not crash during
finalization
fix(util/script_state_manager): crash when compiling with msys2 stack

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(util/thread_script_state): disable script_state recycling at finalization time

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(build): use Release when compilation mode is not specified
feat(build): do not display WARNING message when tcmalloc is not found
fix(util/thread_script_state): style
fix(frontends/lean/tactic_hint): failure when compiling lean terms into
tactics: mismatch on the number of universe parameters