Add support for `--dry-run` mode.

This addresses Issue #16.

I added a class, `DryRunRunner`, that will skip all steps and will report them as either skipped or undefined to the given `report` object.

I added a `options` parameter to `Core#execute`. This will default to using the `DefaultRunner` unless otherwise specified.

More test runners can be added by adding them to the `Runner::TEST_RUNNERS_LIST`

Example
```ruby
Runner::TEST_RUNNERS_LIST[:my_run_mode] = MyRunner

#....

execute(docs, mappings, report, filters, run_mode: :my_run_mode) 
```

This will fail with an `ArgumentError` if there is no test runner found.