(#443) Added inverse.to_s in TagRule.add_tag_matcher

This change modifies the TagRule.add_tag_matcher method to call to_s
on the inverse tag_matcher option instead of the compare option. The
reason is that inverse might be a boolean or a string whereas compare
should always be a string. The original code was the other way around,
suggesting this problem might simply be an oversight.

The reason this change is necessary is that the inverse tag_matcher option
might be a boolean. When this is the case, the TagRule.add_tag_matcher
will not add the tag_matcher and simply return false. This was rather
obscur to troubleshoot so his change also added some warning when the
tag_matcher options have unexpected values.

The change includes rspec tests for the .add_tag_matcher method in the
ProjectRazor::Tagging::TagRule class. It also includes a few require
statements so that the tests can be run only for a single file:

  rspec spec/project_razor/tagging/tag_rule_spec.rb

This pull request fixes issue #443.
Rewrite spec tests to use let methods, no member variables

This replaces the member variables and before method used in CR3's version of
the tests with `let` methods; that reduces the amount of memory tied up beyond
the scope of the individual tests[1].

It is also good practice, because it avoids any risk that member variables -
which are global state shared between test instances - can cause unexpected
behavioural dependencies between individual tests.

[1] At least some versions of rspec, and reporters, have kept the individual
    test class instances alive for the entire duration of the suite running.

    That, in turn, means that any member variable, and anything it depends on,
    lives for that same duration.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Merge branch 'cr3-bug/master/443-inverse-tag-matcher-problems'