Config -> ConnectionConfig

Prepares PoolConfig / ServerConfig
Adds "timezone" config param (related to #291 and #289)

Use it like:

```js
mysql.createConnection("mysql://.....?timezone=+02:00")
```

("Z" is also possible for UTC dates)
Adds timezone support

This timezone is the timezone you want the dates to be written in the
database. Local dates are converted to the timezone you want and then
written. Reading will do the oposite. Without this timezone setting,
dates will be written in UTC (default timezone = "Z").

There's also a tweak on the typeCasting, not finished yet, that enables
people to make a custom typeCast function and use the default as
fallback.
Changes default timezone to local
Adds ability to change client connection flags

Example:

```js
mysql.createConnection("mysql://.../db?flags=-found_rows,plugin_auth");
```
(blacklists FOUND_ROWS, adds PLUGIN_AUTH)
Move client flags handling to separate functions

One function to merge default flags with user flags and another to get
the default flags.
Removed forgotten console.log for debug
Avoid exceptions when using mergeFlags and getDefaultFlags without last argument
Allow whitespace on connection flags
Add the magic plus that will wipe empty flags :)
Pass flag parsing (split) to ConnectionConfig.mergeFlags

This way, tests can also check for correct flag string splitting
Allow custom escaping mode

People can now use connection config to define an `queryFormat`
function that is used instead of connection.format.
Added pool option to connection config
fix for custom charsets on subsequent connections in pool
apply failed patches
Added classes for connection pooling
Fixed defaulting the waitForConnections config option