Provide Server Context

This removes the thread local connection pinning in the connection pool, and also gets rid of the dispatch mutex on Server since server is no longer sending messages. One must now ask the server for a `context` and then with the context get a connection. Example:

```ruby
server.context.with_connection do |connection|
  connection.dispatch([ insert, insert ])
end
```

The `with_connection` block handles the checkout/checkin from the connection pool.

cc/ @estolfo @samantharitter