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.
No, the difference is that `oref` is a macro that doesn't evaluate its second argument, so it's only appropriate for passing the slot name as a constant, while `eieio-oref` is an ordinary function. The inner call is still using a constant slot name, so `oref` is appropriate there.