Rework

* Migrations don't fail fast when an error is returned, but instead just print `FAIL` and leave as pending. This lets you continue on to the migrations that follow, which is helpful when git branches merge out of order.
* Migrations are compiled with your app, so there is no need for the `go` binary on your server anymore. See Readme.md in this branch for details on how you might run migrations with this new version of go.
* On app init, each migration calls `RegisterMigration`, giving `goose` access to each of the migration's functions (up and down), its version, and its name. This way goose does not need to know about the file structure/hierarchy of your app.