Allow the specification of a source URL in a Podfile

Will close https://github.com/CocoaPods/Core/issues/170.
Will close https://github.com/CocoaPods/CocoaPods/issues/2515.
See https://github.com/CocoaPods/Core/compare/source-url?expand=1 for the sister changes in `Core`.

TODOs:
- [x] Add test coverage
- [x] de-duplicate code with `pod repo add`?
- [x] verify robustness of name generation
- [x] verify error reporting
- [x] deprecate/remove specification of repos by name in `Podfile`?

\c @alloy @kylef @fabiopelosin @orta 
There's only one source, but it's wrapped in an array.