allow converting SubString tails of ByteStrings to pointers

and return bytestrings from path functions, because that's probably what
will be needed in most cases.
fixes #4106