remote: add tests for remote-branch edge cases

Add tests for the case when there are no branches on the remote and when
HEAD is detached but has the id of a non-branch. In both of these cases,
we should return ENOTFOUND.
remote: add test for single-branch clone

When cloning, we may be asking for a particular branch or subset of
branches. Make sure we test for that.