use slots per instance of SpecFilesArgument

Fixes a bug that root and pattern are shared among instances, causing
one argument to iospec to run mutliple times
DSL test names include DSL module
use init methods to initialize instance slots

Initialize slots in the init block so they are initialized per clone.
work with clone of Spec rather than real thing
cleanup DSL functions from Spec

Separate Spec from DSL functions. Spec executes with its own attributes
using its run method.

Also cleaned up Spec's tests.
cleanup DSL functions from Suite

The DSL is offered by the dsl module. Suite is only a collection of
specs.

Suites described using the DSL are registered in IoSpec world. This
world represents context of the running IoSpec execution. Runner runs
all suites in a world.
rename SpecResult map* functions to if*
Spec has a name rather than a description
move Spec's do method to DSL

The do method puts a passed message as example block in Spec, so it
belongs in the DSL. A Spec can operate very well without it by requiring
an example block.
ensure that DSL passes subjec to Suite
rename report start and startDump methods

Rename report's start method to 'startRun' and 'startDump' to 'dump'.