Create new errors related to connections and updated the Connection Manager for MySQL to utilize these errors.
Added logic for when an error doesn't have an `code` property.
Added an error for connections timing out. Updated Postgres connection manager to use the new errors.
Wrapped the errors for Maria DB in the new `ConnectionError` object.
Moved the connection errors to after the Database and Validation errors so they aren't breaking up the grouping.
Added the connection errors to Sequelize just like the other errors. Added tests for the errors.
Fixed errors calling themselves :facepalm:
Updated checks of error messages to use the new values which are what is propagated from the connection failure.

As pointed out in the [PR](https://github.com/sequelize/sequelize/pull/2576#issuecomment-63018736) for this functionality we would ideally not be checking error messages and instead be checking the constructors of the objects to make sure that they are an instance of the correct error type. There's some issues right now with two different constructors being used and not being able to use `instanceof`. We could fall back to the constructor name or some other check, but at the end of the day that isn't really any better than just checking the message.
Updated tests so that they are relying a little bit more on expect for checking and also checking the actual type of error thrown.
Removed the `2` from `ER_ACCESS_DENIED_ERROR` so that it will actually match if able.
Removed filters only allowing the tests to occur on Postgres and Postgres native to see if they are passing now.
Wrap errors from SQLLite in the new connection error objects. Update the ConnectionError constructor so that it can handle a falsey error object being sent as a parameter. Update the configuration tests to support SQLite and it's custom messages as well as the lack of authentication.
Remove `.only` :facepalm:
Remove `done` and make the tests synchronous so that `notify` can also be removed.
Filtering out mariadb for the configuration tests that weren't previously running for MariaDB to try and narrow down the issue.
Added in a `return` call. Was adding this from the old code and forgot to do flow control on it...
add dialect checks for upsert support

Upserts in MSSQL are non-trivial to implement, adding the ability
to test for support is a valid stopgap for later implementation
Merge pull request #2678 from mbroadst/supports-upserts

add dialect checks for upsert support
[ci skip] docs
Merge branch 'master' of github.com:sequelize/sequelize