Update change log.
Add summaries for all versions in the change log.
Always throw JSONException from vibe.data.json

Publicly import JSONException from std.json and modify
the documentation accordingly.
Throw WebSocketException from vibe.http.websockets

Add WebSocketException class and modify documentation accordingly.
Add freeArray and use it in HashMap to properly call GC.removeRange. Fixes #591.
Make vibe.d work without OpenSSL (VibeNoSSL) and add factory functions.

Instead of using SSLStream's and SSLContext's constructors directly, using free functions will be required at some point, so that those classes can be changed to interfaces with multiple underlying implementations.
Ignore logging exceptions in release mode and display the exception message in debug mode.
Merge pull request #590 from lultimouomo/typedExceptions

Use typed exceptions in vibe.data.json and vibe.http.websocket
Fix typo.
Update change log.
fix broken keepAlive timeout

problem with calling `empty` is that in the libevent driver implementation of `empty` checks `leastSize` and `leastSize` is blocking without a timeout. this in turn renders the keepAlive timeout useless.
Merge pull request #597 from Extrawurst/patch-1

fix broken keepAlive timeout
Move the client disconnect message in the HTTP server after the waitForData call. See #597.

Previously, the log message would indicate that a connection timed out, even if the client actively disconnected during the keep-alive period.
Compile fix.
Fix possible assertion during active TCP connects and a possible connection leak.

- Sometimes `bufferevent_socket_connect` will invoke the `onSocketEvent` callback synchronously instead of using the event loop. The resumeTask failed in this case. See also http://forum.rejectedsoftware.com/groups/rejectedsoftware.vibed/thread/14474/

- When an `Error` (vs. an `Exception`) was thrown within an incoming TCP connection handler, the connection wasn't actively closed, possibly resulting in a permanent socket leak
Added Redis tests and RefCounted connection implementations
Pushed logInfo into version()
Calling drop() on a RedisReply without a LockedConnection too (to empty
the pipe correctly)
Merge pull request #598 from globecsys/master

Added Redis tests and RefCounted connection implementations
Fix exitEventLoop() whan called from a task that has been started before runEventLoop().