Add support for multiple separate header fields in InetHeaderMap and parseRFC5322Header. See #380.

parseRFC822Header now has an additional rfc822_compatible parameter that keeps the old behavior and is true by default. So for now, existing code behaves the same as before.

The documentation for both entities has been improved and clarified WRT multiple fields.
Disable RFC822 compatible behavior for duplicate header fields in the HTTP client/server. Fixes #380.

Nothing in the HTTP client or server currently depends on the old behavior, so it should be save to make the transition here. Other parts where parseRFC5322Header is used will not be affected.
Fix yield() to be a no-op outside of a running event loop (would otherwise block the application).
Let ThreadedFile write in chunks with embedded yield()'s to avoid stalling the event loop.

Note that ThreadedFile is actually supposed to be writing in a worker thread, but this hasn't been implemented yet.
Generalize serialization of date/time structures by looking for (to/from)ISOExtString instead of concrete types.
Fix the host field of HTTPServerRequest.fullURL (contained the port part, resulting in a malformed URL).
Fix MongoCursor to handle explicit query commands.

If the incoming query already contains a query command (e.g. "count"), it was incorrectly treated as a field query. See #353.
Implement ConnectionProxyStream to allow wrapping embedded streams (e.g. SSL) as a ConnectionStream.
Let HTTPServerResponse.switchProtocol return a ConnectionStream instead of just a Stream.
Don't try to cast the connection returned by HTTPServerResponse.switchProtocol to TCPConnection. Supposedly fixes #385.
Avoid use of deprecated features in the https_server example.
Avoid trying to write an error response to an already closed connection.
Don't free log messages returned by ERR_get_error_line_data. See #384.

It's not really clear from the OpenSSL docs, but it appears that OpenSSL always frees log messages by itself.
Avoid accessing a closed TCP connection when finalizing a request/response in the HTTP server.
Disable the stdout logger on Windows when no console is available to avoid access violations.
Add a mutex to HTTPLogger to avoid mixing lines with the new yield behavior of ThreadedFile.
Avoid access violation in ConnectionProxyStream.close(). See #384.
Suppress bogus "persistent connection timeout" debug log message.
Rewrite WebSocket to read messages in a background task and add WebSocket.waitForData(). Fixes #370. See also #384.
Add WebSocket example.