Fix bug where all connectors were using the same type converter options object

Add copy constructor to NativeToBackendTypeConverterOptions.
Keep distinct options object, initially == default, per connector.
Optimize away unneeded calls to UTF8Encoding.GetCharCount(), UTF8Encoding.GetChars, and new string(char[]) in favor of UTF8Encoding.GetString().