Support storage and migrations using custom thenables

Don't require storage and migration implementations to return Bluebird
promises - any object with a then(...) method should do.