Connection pooling

Adds two new classes, `Connection` and `ConnectionPool`. Moves the socket / protocol negotiation code out of the `Server` into the `Connection`. `Connection` and `ConnectionPool` both implement a `send()` method with the same interface. This allows us to treat a connection and a pool of connections in the same way. The connection pool is turned off by default, but is enabled by adding a `pool` object to the server configuration, e.g.

```js
var server = Oriento({
  user: 'root',
  password: 'foo',
  pool: {
    max: 10 // use a maximum of 10 sockets in the pool
  }
});
```

This also fixes the problem where tests would sometimes fail on first try.