add listStatuses and listHeads. re-implement listBranches using listHeads

listHeads allows access to the extra metadata returned from /git/refs/heads, whereas listBranches only returns branch names

listStatuses returns commit statuses for a given ref