Ensure all strings passed to libcanberra are byte strings

We need to pass byte strings to libcanberra, which is default with
Python 2 when defining a string as "foo".

However, on Python 3, the same definition gives a unicode string, which
libcanberra can't handle.

To avoid forcing applications to change the way they called pycanberra
on Python 2, pycanberra now quickly ensures that all strings it handles
are encoded to bytes, if they weren't already.