(CFACT-65) Replace RE2 with boost::regex

Removes dependency on RE2. Uses an adapter class and function to abstract
regular expression calls so it's easier to modify or switch packages if
necessary (for speed or Unicode support), and simplify the call interface.
If we can't selectively disable this, I'm fine with disabling it entirely.  It'd be nice to have the linter catch non-explicit single-argument constructors, but sometimes implicit type conversions are desired (and cpplint should take that into account somehow).  We'll just have to be a little more vigilant during reviews to spot them for consistency's sake, but missing an explicit keyword isn't necessarily indicative of an issue.