Add the long awaited read!

Refference: #7 #264 #375 #551 #622
and for fun:
```hy
=> (defmacro loop [&rest args] `(while true ~@args))
=> (-> (read) (eval) (print) (loop))
(+ 2 2)
4
(print "hello")
hello
None
(def a 2)
2
(+ 1 a)
3
```


I kinda hate that we have to re-lex every time.

Man. I wonder if we can't patch rply in a way that isn't super invasive.