DataBasedTest: Catch parse exception

... and rethrow it with more info as a TestException.
RegExpTest::Match*(): Add '\' escaping tests
RegExp: Fix '\' escaping in wildcard patterns
Add code/Switch tests for switch/case blocks
Implement Case::Matches()
Add code/If, tests for the "if"/"else" statement
Add StringList::IsTrue() with test
Add optional StringList::CompareWith() parameter

ignoreTrailingEmptyStrings. If true, trailing empty strings are ignored.
Also add tests for that behavior.
If/{Binary,Not}Expression/While: Use StringList::IsTrue()

... instead of !StringList::IsEmpty() to matches Jam semantics.
Non-empty Lists containing only empty strings are considered "false" as
well.
If::Evaluate(): "else" case executed wrong block
Parser: Fix operator precendence for && and ||