Don't fall over if we find an unknown language code

Instead just use the code for the name
Always convert non-commit ID into commit id

So that a tag can be updated to point to a new commit.

And raise Http404 if the commit can't be found