Learn how to count.

Having actually decodable scrape responses is an added benefit.
Actually error properly when something goes wrong in parse_announce_request.

Using the error handling label makes it much easier to handle errors.
It's a wonder I never thought of this before!
simple_error really doesn't need to return a status code.
Actually free announce_data at the end of an announce.
Fiddle around with the debug printouts in parse_announce_request.
Correctly parse event if it's not the last field/value in the announce request.

Because value is a pointer in the middle of a longer string, strlen
doesn't actually do what I had pretended it would do.
Treat all unknown events as stopped.

Actually return something instead of making everything explode.
Skip malformatted hashes in scrape request rather than canceling entire scrape.

All valid hashes should get a response.
Properly free scrape_data.