Only support the templated constructor for types with an 'external_string_type' member. Refs #4135.
Using SFINAE, I might add a workaround for compilers that don't support it, although I'm not sure if there are any that Iostreams supports.