Refactored name of migration into MigrationInfo
Introduced IMigrationScope to allow scopes to be used outside of runnercontext and to prepare for transaction-per-session runner option

Created NonAttributedMigrationToMigrationInfoAdapter to allow removal of duplicate code in migrationrunner up/applymigrationup etc
Moved all IMigrationInfo implementations in separate files

Added NonAttributedMigrationInfoAdapter
Added Imigrationinfo extension method
Cleanup duplication of up/applymigrationup closes #381
Added transaction-per-session option to all runners

Added option to runnercontext
First dry run closes #380
Spelling change
Add shorter tps switch in MigratorConsole

Additional switch for Transation per session for the command line.
Refactor out validation from MigrationRunner

Create a new class called MigrationValidator that removes the internal
validation logic from the MigrationRunner.
Refactor timing logic out from MigrationRunner

Move the time action method into the StopWatch class. This affected a
test that had to be done slightly differently.
Refactor out MigrationScope from MigrationRunner

Create new MigrationScopeHandler class which handles the transaction
logic.
Fix tests for Migration Runner

StopWatch mock should always invoke the action for the Time method.
Merge pull request #399 from tommarien/transaction-per-migration-session

Transaction per migration session