REVERT/CHANGE: When RuleSet() was changed to absorb exceptions, this threw existing testing out the window because RunTests was expecting exception output from a RuleSet() load.  Now, if the RuleSet.Mode == RuleSet.TEST, it will output the exception text (for testing) otherwise the exception will be captured for processing by RuleSet() consumer.
ADDED: Allowed types for WhereTo and WhereFrom by modifier, updated some tests that were incorrect, added additional tests for valid/invalid types. More tests needed to have complete coverage.