Continuing #2057, s/assert/raise AssertionError/g
#2057

Though I've never encountered usage of python -O in the wild.

set to 0.12, to be merged right after 0.11, since it touches all manner of things
and needs testing before inclusion in a release. 
 Seems pretty uncontroversial to me. I'd be happy merging?
 Up to you. there's no real benefit to users, and it's too many changes to be sure
I haven't missed a semicolon somewhere. I prefer 0.12 - there's already a bunch 
of refactors queued up for right after 0.11, might as well save it for the party.
