Invalidate identfinder result when local variable of same name

We want more intelligent gotodefinition and gototypedefinition, so we
need to be aware of the local variables that could shadow
functions, globals, etc.

As a first step, we invalidate an identfinder result whenever the ident
is shadowed by a binding in scope stack.
Return invalid request when server is already initialized
Add scope_enter and scope_exit to visitor
Free lsp_server
Free lsp::protocol::parser in client_finish
Remove unused function
Refactor format::jsonrpc
Fix hover display
Visit assign_expr
Fix canonicalize ident
Fix closing twice the same socket
Add relaxed ident rule to identfinder
Lift off assumptions
Inject HAREPATH from initializationOptions
Find definition for global_expr
Initialize fileinfo in declfinder

It used to work fine, but upon adding another field it wouldn't work
Move definition to file, faster didChange/didClose
Configurable listening option
Delete fileinfo on textDocument/didClose notifications
Use filetype to check for hare files