Iostreams: Support filesystem3 paths. Refs #4485.
Based on Zhuo Qiang's patch with added tests and support
for operator=.
I also used codecvt_type to detect filesystem3::path
instead of string_type. Using string_type made
filesystem2::path ambiguous because it has both
string_type and external_string_type members. 
The member types are a bit arbitrary, but a more precise
distinction would probably also be more expensive.