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.
Update README.textile
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
Add base classes for processor integration tests

There is no consistant definition of what tests should be covered in
processors.  Base classes for tests have been created to resolve this.

Assumptions have been made in regards to test classification.

 1. Some SQL RDMS do not have support for schemas or sequences
 2. Some SQL RDMS that support schemas, such as Oracle Database, present a
 challenge to test multiple schemas.
  * For Oracle Database, a schema is tied to the user defined in the
  connection string.
 3. Some existing tests appeared too specific and do not need a base class
Move processor tests into individual folders

Kept this commit seperate to help those who may want to rebase their work
over my changes.
Organise SQL Server integration tests

 1. Test table did not correctly quote table names
 2. Test table only supported one column - incorrect brackets
 3. No existing test coverage regarding schemas, constraints or indexes
Organise SQL Server CE integration tests

Test table did not allow custom index or constraint names. This is useful
for testing single quotes in index and constriant names.
Organise Postgres integration tests

Test table constuctor did not match existing pattern
 * "(table, processor / connection, schema, columns)"
Organise Oracle integration tests

 1. Found bug in processor code - object names were not been escaped
 properly.
 2. Test table constructor changed to match pattern (see previous commit)
Organise Firebird integration tests

Test table constructor changes to match pattern (see previous commits)