Make MongoDB::OID->new() do something useful with as single value

- strings are treated as the value
- the value is extracted from MongoDB::OID objects
Extract the OID timestamp in one go

No need to loop and multiply/add manually
Handle non-ASCII keys and values properly

- Ask if the key is UTF-8 instead of guessing, and convert as needed
- Just use SvPVutf8() instead of trying to detect the encoding
  (this way, downgraded character strings that look like UTF-8 can be inserted)
Remove unused isUTF8 function
Avoid 12 sprintf calls per insert
Call getpid directly instead of get_sv("$")
Eliminate repeated and costant strlen() calls
Avoid looking up global variables again and again
Look up relevant globals at API entry points

The previous commit broke using 'local' on the global variables, since
that replaces the symbol table entry with a new SV temporarily.
Merge pull request #68 from ilmari/oid-fixes

OID fixes
Merge pull request #67 from ilmari/utf8-fixes

UTF-8 fixes
manual merge of ilmari speedup changes
Merge pull request #66 from ilmari/speedup

Speedups
Fix mangled merge of UTF-8 vs. 'local' test changes