Fix for issue #1829: down migrations operate only on *completed* migrations

**Issue**
In [/lib/migrator.js](https://github.com/sequelize/sequelize/blob/master/lib/migrator.js), down migrations take place within the [getUndoneMigrations](https://github.com/sequelize/sequelize/blob/master/lib/migrator.js#L36) callback. A migration that *should* be undone will never exist in the array of migrations that *have* been undone and so down migrations will never occur.

**Fix**
Down migrations now occur in a "getCompletedMigrations" callback. It will only run a down migration for files that have a record in the db more recent than the timestamp on the file. Down migrations call "deleteUndoneMigration" when finished to remove the migration record from the db. Added several tests for getCompletedMigrations.
Return completedMigrations and then return the promise chain and call `nodify(callback)` on the promise chain.
I'm aware the rest of the codebase is not very promisy likely, but it's a transformation we're making so might aswell do it while you have this lovely PR up :)