* Move everything to the Regex namespace:
- Regex -> Regex::Pattern
- RegexException -> Regex::Exception
- RegexFactory -> Regex::Engine
* Add support for regex flags.
- Regex::OPT_CASE_INSENSITIVE performs case-insensitive matching.
* Add the Regex::EngineReference class as a friendly wrapper around
dynamic_reference_nocheck<Regex::Engine>.
* Add the Regex::SimpleEngine template class for automating the
implementation of regex factory classes.
* Use std::shared_ptr for Regex::Pattern objects instead of making
users manage memory manually.
- Add CXX11_OVERRIDE to *Regex::Matches and *RegexFactory::Create.
- Fix documentation comment on regex_string.
- Fix various code duplication/layout issues.