Fix migrations bug for multiple operations

`promise.fulfilled()` was being passed to each migration's `up` function. Based on the integration tests, I figured passing `promise` through is meant to be a convenience so that `promise.all[promises*]` can be called.

At the moment the integration tests just verify that a migration took place and that it the promise wasn't rejected. When I have a second I'll write a case to actually confirm that the right tables are being created and deleted.