(CFACT-137) Add Boost.Nowide for Windows UTF-8

Add the Boost.Nowide (candidate) library for UTF-8 aware standard library
wrappers on Windows.
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.
(CFACT-137) Use Boost.Nowide cout/cerr adapters

Use the Boost.Nowide cout/cerr adapters that ensure UTF-8 will be printed
correctly on Windows. Requires building the Boost.Nowide library on
Windows, and adds tests for the library.