Stream cleanup two

Second time... or third time's a charm. I hope this is it.

- code is actually understandable
- NO MORE UNICODE ERRORS
- NO MORE 100% CPU usage
- return data chunks ASAP
- handle "old school" non-blocking mode (for those who still want it)
- works on all stream servers I have access to

@RouxRC I'm going to merge this quick. After the fiasco of the last version I want to get working code out the door quickly. Let me know if Python 2.6 explodes (though I don't think it will.)