Allow the specification of a source URL in a Podfile

Will close https://github.com/CocoaPods/Core/issues/170.
See https://github.com/CocoaPods/Core/compare/source-url?expand=1 for the sister changes in `Core`.

TODOs:
- [ ] Add test coverage
- [ ] de-duplicate code with `pod repo add`?
- [ ] verify robustness of name generation
- [ ] verify error reporting
- [ ] deprecate/remove specification of repos by name in `Podfile`?

\c @alloy @kylef @fabiopelosin @orta 
Not sure what this does right now, but to be clear it should transform:

* Any non-GitHub URL:
  - `https://sourceforge.org/Artsy/Specs` -> `sourceforge-artsy-specs`
* Any GitHub URL:
  - `https://github.com/Artsy/Specs` -> `artsy`
  - `https://github.com/Artsy/MiSpecificationis` -> `artsy`

/cc @orta confirm?