request: handle multiple callbacks
connection: separate sending request from flushing queue
connection: fix bugs preventing connection completing
request: add missing require()