feat(emacs/lean-cmd): add set and eval cmds
feat(emacs/lean-syntax): support multi-line comments /- ... -/
refactor(emacs/lean-flycheck): remove lean-flycheck-initialized
refactor(emacs/lean-util): remove unused functions

 - take-first-n/last-n => use -take, -drop (from dash.el)
 - string-join => use one in flycheck
 - remove other unused functions
feat(emacs/lean-settings): add eldoc-use and eldoc-nay-retry-time
refactor(emacs/lean-server): use global-server-message-to-process

We are using asynchronous process mechanism to communicate between
lean-server and emacs. A sender function like
lean-eldoc-documentation-function sends a command and waits until
lean-global-server-message-to-process is non-nil. When a message is
received from lean-server, a filter function lean-server-output-filter
is triggered. This filter function concatenates a received message to
the buffer until it sees the end of message markers (--
END[INFO|SET|EVAL]). When it sees a marker, it splits the buffer
messages into pre, body, and post parts. Then it assembles a message to
process and attaches the message to
lean-global-server-message-to-process variable. A sender function which
is watching for the variable will recognize it, exit the polling, and
process the message.
feat(emacs/lean-info): use cl-struct lean-info-record
refactor(emacs/lean-type): clean up eldoc-function and fill-placeholder
feat(emacs/lean-mode): use define-derived-mode
feat(emacs/lean-type): add SET/EVAL commands