Add non-ut8 support to glob

The patch adds `ByteContainer` pretty much everywhere and treats paths and patterns as `bytes` instead of `str` to support non-utf8 characters.

cc #11916