Implement yield-from in Python 2.x as a macro

  And who said you can't teach an old dog new tricks.
@superbobry makes a good point. Here's a concrete example of where the semantics differ:

```hy
hy 0.10.1 using CPython(default) 2.7.8 on Linux
=> (defn f []
...   (yield 1)
...   (try
...     (yield 2)
...     (catch [e ValueError] (yield 3))))
=> (defn g []
...   (yield-from (f))
...   (assert true))  ; see issue #691
=> (setv x (g))
=> (next x)
1L
=> (next x)
2L
=> (x.throw ValueError)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "<input>", line 257, in g
ValueError
```

as opposed to

```
hy 0.10.1 using CPython(default) 2.7.8 on Linux
...
=> (next x)
2
=> (x.throw ValueError)
3
```