More yielding from

Add more elaborate tests of generators, make generators pass return values correctly, and refactor some unnecessary code.
(Fun sidenote; currently the only way to return from a generator in Hy is to do this)