Check that a sha points to a commit

It's possible for a sha hash to point to a Tag object, not a
commit. When fetching a Commit, Repository now verifies that the
object that a sha points to is indeed a Commit
Update tag color to 'label-danger'
Fix commit_detail and add list of branches

Also, make the branch and tag names links for quicker navigation
Add a filter to remove "tag: " from tags found in "git log"
Update is_branch to recognize 'HEAD' as a branch
Update views to better validate refs
Refactor CommitDetail

Refactor some functionality and add "branches" to the context so that
we can list the branches that point to a commit.
Change tag and branch labels in commit list to buttons
Merge branch 'feature/nav-fixes' into develop