Update String Functions, Include UTF-8 Support

This is the first in a series of PR's fulfilling some of the goals around international character support outlined in the Roadmap.

The first few PRs include some const-corrections as well to make integration newer const-corrected UTF8 features go more smoothly. 
Is `Poco::UTF8::toLower()` is UTF8 sensitive.  `std::transform` is not aware of Unicode multi-byte characters unless a locale is specified.  It transforms each byte as an ascii character otherwise.  Using `Poco::UTF8::toLower()` allows us to move forward on our plans to make UTF8 default [per the roadmap](https://docs.google.com/document/d/1GjgjQZCHTcOD3cT9OFSl0AZ1nhfYwwvxTl5L4OJE6qA/edit#heading=h.xmy4lcchwvhc)