Add a method to parse git URLs (but not arbitrary file paths). This method parses git URLs into scheme, username, hostname, port, and path. It will raise an error if its argument is not proper git URL. - [x] add `spack.util.url.git_url_parse` method - [x] add 31 tests for `git_url_parse`