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.
Implement missing method RedisClient.hset
Add HTTP redirection overloads taking a URL instead of a string.