Use OS::path_t.

This fixes some issues with wide paths.
Fix uses of Str::PU.

In many cases, we were still converting the path to a string manually
then passing it to Str::PU which was causing a silent reconversion to
path_t followed by a conversion back to string.
Disable deprecated Boost::Filesystem functions.

When using Boost::Filesystem v3, don't enabled the deprecated function
names.  This helps us catch cases where we call the string conversion
functions directly instead of going through Str.

The exception is the updater, which does a lot of direct path string
manipulation and doesn't have access to Str anyway.