Fix concurrency issues

Concurrency was totally broken in the previous version. Each callback
relied on a global PartialRequest that would be clobbered randomly by
concurrent parsers.

Unfortunately, there's not a super clean way of solving this problem
because closures are not c-callable yet. We get around this by using
global dictionaries of parsers => partials and parsers => on_complete
callbacks.

One major bummer: this requires manual garbage collection and right now
we'll leak memory for hung connections.