Decouple results matching logic of CompareStoredQueries from FitNesse

This is currently experimental and incomplete effort to decouple dbfit matching logic from FitNesse internals.
Initial focus is to try that on top of CompareStoredQueries though it's likely to appear a bit more generic.

Some rough ideas for now:
 * A `Matcher` will be created to encapsulate the matching logic.
 * Events will be emitted to listener to communicate the matching results/progress:
   - endRow(`MatchResult`)
   - endCell(`MatchResult`)
 * `MatchResult<T>` will encapsulate result status and provide access the compared entities:
  - getStatus()
  - getExceptions() //
  - getObject1()
  - getObject2()
 * `MatchableObject` - wrapper on top of compared entities supporting easier matching and reporting the results of matching.
  - getName() // label
  - getValue()
  - getStringValue()