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 think this can be

```rust
let mut it = s.splitn(c,  1);
match (it.next(), it.next()) {
    (Some(a), Some(b)) => (a, b),
    (Some(a), None) => (a, ""),
    (None, _) => unreachable!()
}
```