Typo Fix

Fixed a typo in a comment in regexoptions.hpp.
Culture Invariant

Modified the regular expression compiler to support RegexOptions::CultureInvariant.

Normally whichever Locale is passed to the compiler is compiled into each pattern element, however in the culture invariant case the default locale should be used regardless.
RegexOptions Tweak

Changed RegexOptions::IgnorePatternWhitespace to RegexOptions::IgnorePatternWhiteSpace -- i.e. made the capitalization consistent with the Unicode standard, which uses "white space" rather than "whitespace".
Regular Expression Compiler Tweaks/Refactor

Added the RegexCompilerState class, which carries around the regular expression compiler's internal state, as well as having convenient methods for manipulating that state, similar to RegexState.

Adjusted the RegexCompiler, RegexParser, and RegexLiteral classes to use this state, rather than specific arguments -- which was limiting and would not have provided flexibility going forward when new options/flags/et cetera proved to be necessary.
explicit operator bool

Flagged overloads of operator bool on the RegexState and RegexPatternElementState classes as explicit.