Prefer index name when mapping unique constraint errors

When using migrations to create indexes instead of sync or when unique
index name has fields with underscores (was problem at least with
postgres implementation) then it was not possible to set custom error
message, because mapping the error thrown from database always failed.
Fixed by using indexName always for mapping the error if possible.
Update changelog
Promisify tests
Do not explicitly call done in the tests of customized error message of
unique constraint error
Merge pull request #2568 from jamonkko/master

Prefer index name when mapping unique constraint errors
Fix MySQL unique constraint error message parsing
Update inflection dependency to v1.5.2
Merge pull request #2575 from overlookmotel/Fix-unique-constraint-parsing-bug

Fix MySQL unique constraint error message parsing
Merge pull request #2578 from overlookmotel/inflection-v1.5.2

Update inflection dependency to v1.5.2
add environment variable to enable logging during tests
Merge pull request #2587 from mbroadst/add-logging-env-var

add environment variable to enable logging during tests
make abstract dialect more abstract

This fixes two problems in particular:
  - there was no existing way to access information about the model
    you were generating a limit and offset for, so the model has been
    added to the options
  - included where generation was done from raw SQL, making it impossible
    to support other dialects that don't support the same LIMIT syntax
Merge pull request #2588 from mbroadst/update-select-query

make abstract dialect more abstract
add dialect support checking to tests

this allows us to test for dialect features in tests, see
test/transaction.test.js for an example of checking for row locking
support before running a test
Merge pull request #2597 from mbroadst/test-dialect-support

add dialect support checking to tests
only enable RESTRICT fk constraint tests for supporting dialects

MSSQL doesn't support a RESTRICT fk constraint, so we need a way
to conditionally disable these tests. This change adds an extra
section to dialect.supports indicating support for RESTRICT
constraints. Also changed some cases where RESTRICT wasn't being
explicitly tested but used to test the ability to simply use
constraints (query-interface.test.js)
Merge pull request #2605 from mbroadst/restrict-support

only enable RESTRICT fk constraint tests for supporting dialects
Fix forIn rather than each for iterating on object
Merge pull request #2604 from overlookmotel/fix-forIn-over-object

Fix forIn rather than each for iterating on object