Allow fairly common ssh repo clone path to work

Allows github-style ssh repo clone paths (i.e. starting `git@...` rather than `ssh://git@...`)

Addresses #8937. 

Brings in #8951 too (as tests rely on it). Recommend merging #8951 first and then this if desired. 
We want role_version to be defined by the end of the function but this conditional leaves out some cases. What about something like:

``` python
if not role_version:
    if scm:
        role_version = default_role_versions.get(scm, 'master')
    else:
        role_version = 'master'
```