More robust migrations.

Modified the way migrations work.

* The `migrate:refresh` / `migrate:reset` commands have been removed.

* The `migrate:rollback` command now accepts --bench, --package and --path.

* Migration does not utilize batch anymore. (batch will always be 1)

* Rollback of Migrations rolls back ALL migrations that have been ran within the current context. (package/bench/application)

Basically, the `migrate` command will work like always except that batch won't be utilized. The `migrate:rollback` command however, will now rollback all ran migrations that exists within the given context. (package/bench/application)

This makes for much more uniform usage across packages, the workbench and the application as migrations was pretty much out of the question when it comes to packages/the workbench due to its inability to be rolled back.

I also modified the Composer class as well as the MigrationServiceProvider so that autoload dumping is done in the workbench directories as well.

This is just from what I've gathered however and if there is a better way than this, I'd be happy to hear about it.
Also, I have no idea if this is a "new feature" or just an improvement so I decided to just create a pull request.
Apologies if you feel that it isn't conforming to your contribution guidelines and if that is the case, please consider this a proof of concept.

Thank you.