If the client specifies Content-Encoding: gzip for POST requests, decompress the body before attempting to parse it.
This fixes #46 by allowing the user to separate the port bind from the blocking listen(). Two new API functions bind_to_any_port() (which returns the system-assigned port) and listen_after_bind() are equivalent to the existing listen().