Structure for running individual step from spec.

This commit puts in the basis for how Lucid will operate. The idea is that
the SpecRunner is loaded into the RSpec configuration. After specs have
been loaded (via the SpecLoader) a run() method is called for any example
block, which in RSpec corresponds to an it() block. That run() method is in
the SpecRunner(). The SpecRunner mixes in the StepRunner. That StepRunner
has a step() method that handles actually executing a given step that is
read in from a scenario in the test spec.

Currently this structure is just a shell implementation.
Lucid treats non-matched steps as pending.

In order for a step to execute, it must have a matcher. A matcher is what
ties the test spec step to actual code that will execute when that step is
processed. If such a matcher is not found, that means the step is pending
and must be skipped. However, in order to do that it's necessary to search
for a matcher by some common mechanism. That mechanism will be to look for
methods that have the prefix "matcher: ".