liburl: minor api changes

See commits for info, a number of these are 'breaking', although liburl is marked experimental so I'm not sure that matters so much.

First two commits will be impacted if #15138 is adopted, but it's a simple rename.
I'd favor a breaking change to `&[u8]` if `BytesContainer` is off the cards. `&str` can use `as_bytes()`, `Vec<u8>` can use `as_slice()`, etc.

For reference, while actually working on this there was someone on IRC frustrated by having to decode their bytes into utf8 before calling encode once again.

Alternatively, defining a 'local' trait impl'd for `&str, String, Vec<u8>, &[u8]` might be an option? Although I guess that's similar territory to `BytesContainer`.