With statement implementation

Yes, this is spree. Wouldn't think I'd go for implementing it (I avoid using it), but CPython's tests for yield from use it heavily, so if we want to reuse existing testcases for obscure corner cases...

This depends on resolving #388.