Improve Go RPC semantics once we've off Ruby interoperability
This is a cleanup ticket related to #3332
That ticket is for bad error messages we have, but we also have bad semantics. E.g. UserBranchDelete makes it impossible to delete a branch called refs/heads/foo (as in living in refs/heads/refs/tags/foo because it blindly prefixes refs/heads/ to everything.
Edited by Ævar Arnfjörð Bjarmason