Fix issue with edge-triggered orbital
Problem: Orbclient's window.read is currently something like "read 16 events thanks" instead of "read all events". This used to be fine because it was level-triggered, a.k.a. the read event is sent over and over. Now with the edge-triggered model it fails when there are more than 16 events.
Solution: Read until EOF. This does require a vector, but only if it's more than 16 events.
Breaking:
Windows marked as async will break because reads are blocking there.
I have a quick patch for orbterm and launcher that removes the async flag.
What is this flag even? Why is it needed?