Introduce Remote.IsValidUrl.

I can change the test data to be somewhat more generic, since git, http, https, ftp, ftps have the same standard: protocol://site.com:port/path/to/repo.git. But I guess having them like this doesn't hurt.