Ensure that the `Connection` and `Pool` options are set correctly.

The default option values now take precedence over explicitly specified
`null` and `undefined` options.

`Connection#authenticate` now correctly returns a resolved promise if
credentials are not provided.
`Pool`: Rename `connectTo` to `createConnection`.

`createConnection` now returns an initialized `Connection` instance instead of
a promise for the active connection.