Introduce Remote.IsValidUrl.

It's hard to come up with invalid protocols when the constraints are pretty permissive. Any examples that come into mind?