Use std::lexicographical_compare instead of boost's one
Do not call to_utf8/to_wide_string() where possible