Allow ansible-galaxy to install roles from URLs

ansible-galaxy can now refer to SCM URLs (git and hg at this point)
for role names
Dependencies need to use the full SCM URLs too.
Otherwise all seems to work well

Test rolesfile
```
http://bitbucket.org/willthames/git-ansible-galaxy,v1.1
https://bitbucket.org/willthames/hg-ansible-galaxy
```
(works with ssh too)
Change to how SCM is determined

Change SCM determination from executing git/hg commands to explicit
in URL.

Fix check for already installed dependencies
Need to take URLs into account when running playbooks too

Ensure that if meta/main.yml has dependencies containing URLs
these are correctly resolved at playbook runtime.

Update role_name during run time so that output of e.g. task names
look sensible
Tidied up a little, added tests

Moved repo_url_to_role_name to common method in ansible.utils
Added unit test for repo_url_to_role_name
Added integration tests for galaxy
Ensured that role version can be specified in role dependencies
Improved handling of role_version in repo_url_to_role_name
Friendly Role Names and roles from URLs

* Roles can now be given a friendly name as third field in role spec csv
* Roles can be installed from URL (not just from archived SCMs)
* Integration tests to demonstrate this
* Unit tests to ensure that role spec parsing works as expected
Allow installation of roles from yaml roles file

Added docs
Added more tests
Improved how roles are returned from the parsers
Handle older git archive commands

Older git archive commands create tar archives even with a tar.gz
extension. So change it to always create tar archives and have
the install_role method cope.

Removed ssh roles from the test case as they don't work unless
you can connect to bitbucket via ssh and have your key there.

Corrected a minor typo in error messages
Make galaxy work when API server not available

`ansible-galaxy init --offline ...` can create a role without
talking to the galaxy api server
`ansible-galaxy install ...` only needs to talk to the galaxy api
server for galaxy roles, not tar files or scm archives
Fixed a bug in command line role installation
Corrected bug where role_path was wrong for roles in subdirectories

Fixed role name for
    - { role: 'lives/in/a/subdirectory' }
Should be 'lives/in/a/subdirectory', not just 'subdirectory'
Add comments about what these new functions do.
Add documentation for new ansible-galaxy role options in 1.8.  Much rejoicing.
Work in progress on bin/ansible-galaxy changes testing.
Assume github.com URLs are git protocol if not specified.