[WIP] [DBAL-407] Refactor exceptions


###MySQL

* [x] 1048	SQLSTATE: 23000 (ER_BAD_NULL_ERROR) Column '%s' cannot be null
* [ ] 1049	SQLSTATE: 42000 (ER_BAD_DB_ERROR) Unknown database '%s'
* [x] 1050	SQLSTATE: 42S01 (ER_TABLE_EXISTS_ERROR) Table '%s' already exists
* [x] 1051	SQLSTATE: 42S02 (ER_BAD_TABLE_ERROR) Unknown table '%s'
* [x] 1052	SQLSTATE: 23000 (ER_NON_UNIQ_ERROR) Column '%s' in %s is ambiguous
* [ ] 1054	SQLSTATE: 42S22 (ER_BAD_FIELD_ERROR) Unknown column '%s' in '%s'
* [ ] 1055	SQLSTATE: 42000 (ER_WRONG_FIELD_WITH_GROUP) '%s' isn't in GROUP BY
* [ ] 1056	SQLSTATE: 42000 (ER_WRONG_GROUP_FIELD) Can't group on '%s'
* [ ] 1057	SQLSTATE: 42000 (ER_WRONG_SUM_SELECT) Statement has sum functions and columns in same statement
* [ ] 1058	SQLSTATE: 21S01 (ER_WRONG_VALUE_COUNT) Column count doesn't match value count
* [ ] 1059	SQLSTATE: 42000 (ER_TOO_LONG_IDENT) Identifier name '%s' is too long
* [ ] 1060	SQLSTATE: 42S21 (ER_DUP_FIELDNAME) Duplicate column name '%s'
* [ ] 1061	SQLSTATE: 42000 (ER_DUP_KEYNAME) Duplicate key name '%s'
* [x] 1062	SQLSTATE: 23000 (ER_DUP_ENTRY) Duplicate entry '%s' for key %d
* [ ] 1063	SQLSTATE: 42000 (ER_WRONG_FIELD_SPEC) Incorrect column specifier for column '%s'
* [ ] 1064	SQLSTATE: 42000 (ER_PARSE_ERROR) %s near '%s' at line %d
* [ ] 1065	SQLSTATE: HY000 (ER_EMPTY_QUERY) Query was empty
* [ ] 1066	SQLSTATE: 42000 (ER_NONUNIQ_TABLE) Not unique table/alias: '%s'
* [ ] 1067	SQLSTATE: 42000 (ER_INVALID_DEFAULT) Invalid default value for '%s'
* [ ] 1068	SQLSTATE: 42000 (ER_MULTIPLE_PRI_KEY) Multiple primary key defined
* [ ] 1069	SQLSTATE: 42000 (ER_TOO_MANY_KEYS) Too many keys specified; max %d keys allowed
* [ ] 1070	SQLSTATE: 42000 (ER_TOO_MANY_KEY_PARTS) Too many key parts specified; max %d parts allowed
* [ ] 1071	SQLSTATE: 42000 (ER_TOO_LONG_KEY) Specified key was too long; max key length is %d bytes
* [ ] 1072	SQLSTATE: 42000 (ER_KEY_COLUMN_DOES_NOT_EXITS) Key column '%s' doesn't exist in table
* [x] 1217	SQLSTATE: 23000 (ER_ROW_IS_REFERENCED) Cannot delete or update a parent row: a foreign key constraint fails
* [ ] 1146	SQLSTATE: 42S02 (ER_NO_SUCH_TABLE) Table '%s.%s' doesn't exist
* [ ] 1147	SQLSTATE: 42000 (ER_NONEXISTING_TABLE_GRANT) There is no such grant defined for user '%s' on host '%s' on table '%s'
* [ ] 1149	SQLSTATE: 42000 (ER_SYNTAX_ERROR) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use