RegexCompiler Refactor

Since regular expression replacement strings will have to be compiled in much the same way as regular expression patterns, made the concept of a compiler more generic by refactoring functionality out of RegexCompiler into a base template -- RegexCompilerBase.  This template uses policy-based programming to create elements, acquire and invoke parsers, and generically implements most of the functionality previously implemented by RegexCompiler.

Also had to refactor varous places in the code base to reflect a name change (RegexCompiler::Pattern to RegexCompiler::Elements, the latter name being more generic).
Regex::Escape Tweak

Regex::Escape now takes the string to be escaped by const reference, rather than by value.
RegexMatch Named and Numbered Maps Getter

Added getter methods to the RegexMatch class for the named and numbered capture maps.

Also added a templated using directive to simplify the declaration of the map types RegexMatch uses.
Replacement Strings

Added the RegexReplacement class, which encapsulates/compiles a regular expression replacement string.

Added supporting infrastructure -- the RegexReplacementElement, RegexReplacementCompiler, and RegexReplacementParser classes.  The compilation/parsing insfrastructure for replacement strings is the same extensible/modular one used for regular expression patterns.

Added overloads of the Regex::Replace method which take a String and compile a RegexReplacement from it, and then use the RegexReplacement for the replacement operation.

Added support for all .NET regular expression replacement string substitutions: http://msdn.microsoft.com/en-us/library/ewy2t5e0(v=vs.110).aspx