UTF-8 fixes

These commits fix the handling of UTF-8 keys and values in the XS part of the driver. Specifically it uses the UTF8 flag to determine if encoding is required, rather than trying to guess based on the internal representation.

https://jira.mongodb.org/browse/PERL-218