Completed major refactor of migrations

This makes the migration framework more logical to work with programatically;
Options are now passed to an instantiator and the instance returned can then be
used to execute any number of commands agains without the need to constantly repass
config and other information
removed old code