First attempt at plumbing for bytes -> str key mapping

pylibmc encodes `str` keys to UTF-8 before using them in any memcached
call. These keys are of course returned from memcached as byte strings,
and it would be nice to give a `str` back to the user if that's what was
passed to pylibmc.

There seem to be two ways to do this:

1) Each call can track whether the keys were `str` or `bytes`. If `str`,
   all keys would be decoded to text before returning them. An exception
   should be raised if the key types are mixed.
2) Support mixed types by tracking whether each individual key was
   provided as `str` or `bytes`. Return each key using its original
   type. This can be done by iterating over the keys and building a
   `dict` that maps each key's UTF-8 encoding to the original `str`
   object. When processing keys from memcached, try to obtain its
   original `str` from this mapping -- if there's no entry for a key,
   it was provided as `bytes` and should be left unchanged.

The new `_PylibMC_map_str_keys` function iterates over the available
keys, builds the `dict` described in #2 above, and returns a new
reference. (The caller is responsible for calling Py_DECREF.)

This should be usable for all of the "multi" functions defined in
pylibmc. `get_multi` and `delete_multi` take iterables of keys as
arguments, and iterating over the key -> value mapping from `set_multi`
should also produce those keys.