Override `eval` to type check code in typed namespaces
Monkey-patching a typed load isn't enough for real usage. By monkey-patching a typed eval, we can type check REPL interactions without the need for a separate REPL.
Add new clojure.core.typed/install var that monkey-patches both load and eval.
The typed eval looks at the current :lang metadata, instead of touching the file system with tools.namespace.
New (Leiningen) bootstrap code: