Make `Url` a URI. I wonder if we should make Commit inherit `GitReference`. Hmm.