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.


This will never trigger because of the `2` - it was because we couldn't reliably catch the error at the time the codewas written as far as I rememeber - perhaps we can now?