Native to backend conversion

Push E string prefix logic down the conversion stack so that array elements can use the same logic.
Only escape \ if the backend is expecting non conformant strings.
Implement string escapes in a function rather than using multiple string.Replace() calls.
Don't use the E prefix if the backend doesn't understand it.
Assume non conformant strings on all version 2 connections, since we can't track changes to the setting.
Expose UseConformantStrings and Supports_E_StringPrefix via NpgsqlConnection.