addressing ZODB/issues/12, encode `request.path_info`before passing it to `transaction.note`

As discussed in https://github.com/zopefoundation/ZODB/issues/12 I too have unicode urls in my project and this issue blocks me when I try to update a context object with unicode in path_info
```
File "/home/chao/projs/venvpython2/local/lib/python2.7/site-packages/ZODB-4.0.0-py2.7.egg/ZODB/FileStorage/format.py", line 287, in asString
    return b"".join(map(as_bytes, [s, self.user, self.descr, self.ext]))
  File "/home/chao/projs/venvpython2/local/lib/python2.7/site-packages/ZODB-4.0.0-py2.7.egg/ZODB/utils.py", line 75, in as_bytes
    return str(obj)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 32-34: ordinal not in range(128)
```
This update of mine fixes the problem, though I'm not sure if I didn't break anything else.
OK, I've looked at it:  `Transaction.note()` requires a native string (not bytes as I first thought).  Fortunately, the `transaction` package provides a helper for that:

    from transaction._compat import native_
    #...
        t.note(native_(request.path_info))

That would allow us to drop the changes to `pyramid_tm/compat.py`.

We do need to add a test which exercises this behavior:  one each passing unicode and bytes to `tm_tween'.