* Use ``os.fsencode`` and ``os.fsdecode()`` for filepath encoding/decoding in Python 3
* Do not decode the 'name' field of events in Python 2, and only encode unicode strings passed to ``add_watch()``, not strings that are already bytestrings.
These two changes allow ``inotify_simple`` to handle filepaths that might not respect the filesystem encoding. In Python 2, leaving everything as bytes mean we don't care about encoding at all. In Python 3, using ``os.fsencode()`` and ``os.fsdecode()``, which use the ``surrogateescape`` error handler, allows incorrectly encoded filepaths to make the decode/encode round-trip unchanged. All standard library functions that encode or decode filepaths do so in this way, so filepaths returned by a standard library calls can be passed to ``add_watch()``, with correct behaviour even if the filepath was incorrectly encoded on the filesystem.