(CFACT-137) Use Boost.Nowide

Replace our own to_utf8/to_utf16 and environment manipulators with
Boost.Nowide. Also use it for fstream/fopen. cout/cerr aren't replaced due
to the dependency on building a binary object, to be resolved later.