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

  And who said you can't teach an old dog new tricks.
Which edge cases does it not handle?  I believed also that it was failling to handle exception propagation, but it turned out that this was not true (we now have a test that proves as such).  If there are edge cases not being handled, please submit test cases and file bugs!  Thanks! :)