[FEATURE] Isolate migrations and provide package data
With this change migrations have access to the data of the target
package (the package currently being migrated) and can be sure that each
migration run is isolated from other runs (the internal state is reset
for each execution).
The command output is tweaked a little along the way.