Add test for findAndCountAll with required belongsTo and limit

Test currently fails. See issue #1953.
restore breaking test
added pretty complicated case, that fails at the moment
fixed pretty complicated test
small fix, and prittified indentation a bit
Merge branch 'master' into associating-sections-when-deletions

* master:
  Allow removing has-many associations by id
  Update README.md
  #2338 - Associations remove[AS][plural]
  Use the new beta build env on Travis
  Text fix
  More promises
  Promisify tests
  Remove unnecssarily asynchronous tests
  Update changelog with BC breaking hstore change
  Update json test expectation
  Merge fix
  Update pg-hstore
  Removed no longer supported nested hstore objects from tests. Improved hstore array handling.
  Use pg-hstore for hstore parsing
  Hstore empty string tests
fixed indentations
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.
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