fix schema test and move dropSchema to AbstractDialect

The schema.test.js added yesterday was using before/after in the
test cases when this.sequelize was not guaranteed to be present yet.
This also moves dropSchema to the AbstractDialect, currently the
code simply assumed you had this implemented in your dialect
Merge pull request #2665 from mbroadst/fix-schema-test-move-drop-schema

fix schema test and move dropSchema to AbstractDialect
fix(model): provide .field support for .update
add default implementation for upsertQuery

Some dialects developers might need to be reminded they need to
implement the upsertQuery.
Merge pull request #2666 from mbroadst/upsert-abstract-dialect

add default implementation for upsertQuery
test(n:m): add test trying to reproduce #2574, seems to work however so closing #2574
Merge branch 'master' of github.com:sequelize/sequelize
test(include/schema): unable to reproduce #2385, closing #2385
feat(query-interface): add schema support to createTable()
fix createTable migration support for non-pg dialects
fix schema on schema issue
fix/feat(instance): skip validations with {validate: false}
fix validation skip test for pg by ignoring database errors
fix(transactions): reject queries using a transaction that has already finished (committed or rolled back), closes #2082
fix faulty logic in tests
release(2.0.0-rc3)
stop sequelize from erroneously adding timezone to raw query dates

Only for rawSelects it seems that Sequelize forcibly adds timezone
information to dates returned from the database. This breaks in
strange and magical ways
Merge pull request #2667 from mbroadst/fix-raw-select-date-time

stop sequelize from erroneously adding timezone to raw query dates
[ci-skip] docs on docs on docs
Merge branch 'master' of github.com:sequelize/sequelize