Add url type option and improve robustness

This contains two commits. The first adds a custom option to decide which url type to use ("git://", "https://", or ssh) instead of just using the ssh url. The second makes it give a better error message if the `git clone` command fails.
I'm a little uncertain why we need validation on the tag, doesn't the choice system handle that? Is that only for the "Custom slot" option? If it's only for that case, I would rather remove that option, and limit it to the known url's. I guess I don't follow what other slots would be of value in this case. Rather not bring in code for keyword validation if it's a really low use case.