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
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.
test(n:m): add test trying to reproduce #2574, seems to work however so closing #2574
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
[ci-skip] docs on docs on docs
[ci-skip] docs on docs on docs
[ci skip] docs on docs on docs
[ci skip] docs on docs on docs
[ci skip] docs on docs on docs
[ci skip] docs on docs on docs