RegexParserInstaller Priority Support

Added a constructor overload to the RegexParserInstaller class template to allow parsers to be automatically installed with a custom priority.
RegexLiteral Installation

RegexLiteral is now installed with the lowest possible priority.
RegexCompiler Fix

Fixed a bug caused by undefined behaviour in the RegexCompiler class:

The global, static vector of parsers was being accessed before it was constructed, due to the fact that global constructors are called in an undefined order between files.

Fixed this by acquiring said vector using the Meyer's singleton pattern.
RegexLiteral ToString Implementation

Implemented the RegexLiteral::ToString method.
Regex::ToString

Added a ToString method to the Regex class, which iterates over all pattern elements and obtains their string representations.
String Fix

Fixed a bug in the String class:

 When a vector of CodePoint objects was assigned to a String, the String failed to copy those code points into itself, resulting in the string remaining unchanged (other than its locale being cleared).
Merge branch 'master' into regex

Getting a needed fix to the String class.
Regex::ToString Documentation

Added documentation to the Regex::ToString method.
RegexPatternElementState

Added the RegexPatternElement State class.

This class provides no members other than a virtual destructor.  Pattern elements will have the opportunity to create and store an object of this type in a smart pointer during pattern matching, thereby allowing them to save custom state in case the engine has to backtrack.
CaseConverter Overhaul

Overhauled the way the CaseConverter functions internally to make it possible to case fold/convert single code points.

Added methods to case fold/convert single code points.

Given the overhaul, it will be much easier -- going forward -- to implement method to check to see if a string is uppercase, lowercase, et cetera.
Merge branch 'master' into regex

Merging master for needed changes to the CaseConverter class.

The ability to case fold/convert on a code point-by-code point basis will
allow for the implementation of case insensitive matching.
RegexParserInstaller Documentation Cleanup

Cleaned up the documentation for RegexParserInstaller.
RegexOptions Check Helper Function

Added an inline helper function to the regexoptions.hpp header called Check, which checks to see if certain options are set on a RegexOptions value.
Compiler/Parser Overhaul

Cleaned up the regular expression compiler/parser implementation.

Added the ability for parsers to perform final actions after it's certain that they'll no longer be invoked on a certain pattern element.
String Conversion

Added the To and Convert method templates to the String class.

The former uses the Converter class template to attempt to convert a string to a certain type, returning a std::optional with the results (disengaged if the conversion failed).

The latter uses the Converter class template to attempt to convert a string to a certain type, throwing on failure.
Merge branch 'master' into regex
RegexPatternElementState

Removed the RegexPatternElementState class.

The idea was not mature and did not make sense in the incarnation in which it currently existed.

The concept of a base class which provides a mechanism for pattern elements to store data specific to them is a good one, however, it is necessary for there to be some per-pattern element structure which stores certain common data (such as backtracking information), in addition to an abstract base class for purely private data.

This warrants further consideration/a different implementation/realization.
RegexLiteral Parsing

Rewrote/overhauled RegexLiteral parsing.

The parser is now capable of handling not just literal characters, but also backslash escaped characters, as well as special backslash escapes which encapsulate specific code points (for example \u0061 and \x61 for the code point LATIN SMALL LETTER A, or \b for backspace).
Range-Based String Construction

Added constructor overloads to the String class which allow strings to be constructed from an iterator-delimited range of objects which are implicitly convertible to CodePoint.
Merge branch 'master' into regex

Merging master for needed String changes.

Range-based String construction will simplify code that extracts
substrings within the regular expression engine (e.g. capturing).