Clean up locator serialized forms

We're using `@` between the key and value parts of the serialized form, and `+` between the other parts. That way, you can distinguish that `branch` means that it's identifying a branch, rather than having a value of `branch` in a key.