Add Connection Specific Errors

This PR was created to address #2567, it adds new error constructors related specifically to connections. Each constructor inherits from the newly created `ConnectionError` constructor which inherits from the `BaseError` constructor. It is created in the same vein as the errors emitted from MySQL Queries. Only the errors related to connections were wrapped, there are some unrelated ones within the Connection Managers (such as checking that the required dialect package is installed) which I did not modify.


Remove the done callback from the function and do

```js
return expect(seq.query('select 1 as hello')).to.eventually.be.rejectedWith(seq.InvalidConnectionError, 'connect EINVAL');
```