lispy.el (lispy-eval-other-window): improve

* lispy.el (lispy-eval-other-window): add setq to let-bound vars.

From this position:

  (let (|(x (foo)))
       ...)

(setq x (foo)) will be evaled.
lispy.el (lispy-debug-step-in): improve
lispy.el (lispy-flatten): improve

* lispy.el (lispy--function-str): Will give a warning when trying to
  extract body from e.g. Emacs C code.
lispy.el (lispy--flatten-function): improve

* lispy-test.el (lispy-flatten): Add test.
lispy.el (lispy-eval-and-replace): will end in special now.
lispy.el (lispy-quit): simplify
lispy.el (define-error): add for older Emacs