Adding promises support for migrations steps [closes #12]

You can now return a promise from your up/down phases, and it should just work as usual
Added documentation for using promises
Also added a better support/tests for migration_runner