-Wtautological-compare Fix

Due to the fact that unsigned integers cannot be less than zero, Clang was generating tautological comparison warnings in converter.hpp, as there are comparisons which determine whether an integer is less than zero, and depending on the template parameter those integers may be of unsigned type.

However, these comparisons are necessary so that the same code can handle signed integers.

To fix this, moved the checks for negative integers into a helper template class -- IsNegative.  This class has a constexpr static Check method, which determines if the given integer is negative.  A specialization of this class template for all unsigned integer types provides a version of this static method which unconditionally returns false.
RegexMatch Numeric Capturing Group Names

When the RegexMatch class is supplied with a String to its operator [] it will now check if the given string is numeric, and, if it is, will look up the corresponding number instead.

This is the same transform as is performed during compilation when a capturing group is explicitly named -- numeric strings are transformed into numbers.
Group Overhaul and Unit Tests

Added unit tests for non-capturing groups, capturing groups (named, numbered, and automatically numbered), and non-capturing groups which change the engine's options.

RegexBalancing now properly derives from RegexGroup, which simplifies its implementation and reduces repeated code.

Substantially rewrote the parsing/compiling code for grouping constructs for simplicity, and in so doing fixed a small bug:

When compiling a capturing group, the compiler would compile the entire captured subpattern before adding the pattern element to the RegexCompiler's index of capturing groups.  This meant that if a capturing group with an identical name or number was nested, they would be added out of order.
Remove Unneeded #include

regexmatch.cpp no longer includes the <new> header.

At some point in the past this source file may have used placement new, but no longer.
Add Capturing Group Unit Tests

Added unit tests for multiple captures -- i.e. when the same group captures multiple times in a single match.  Verifies that captures are made left-to-right in left-to-right mode, and right-to-left in right-to-left mode.

Changed another scenario so that assertions wouldn't be double counted -- nesting THEN blocks was causing Catch to double count assertions in the outer block.
Balancing Fix

Attempting to compile a balancing construct with an empty second group now causes an exception to be thrown.
Balancing Unit Tests

Added unit tests for balancing constructs.

Added a miscellaneous unit test to run an example from MSDN: http://msdn.microsoft.com/en-us/library/bs2twtah(v=vs.110).aspx#balancing_group_definition
White Space Fix

Added missing white space to testshared.mk.
Literal Tests

Added unit tests for literal matching -- i.e. matching against the parts of the pattern that are not metacharacters/-sequences.

The interactions of RegexOptions::IgnoreCase and RegexOptions::IgnorePatternWhiteSpace and literal matching are also tested.
Merge branch 'linux' into regex_linux

Merging for -Wtautological-compare fix.
Merge branch 'regex_linux' into regex

Merged the regex_linux branch to integrate Linux-specific fixes -- namely integration of a -Wtautological-compare fix from master.