Add git service provider mechanism.

1. Can be used on different git service providers now.
2. Add github provider, and make `code pr` work with it.
Use service provider to send pr
Add ropeproject to gitignore
Fix spell typo
Fix `pr`'s `-t` parameter, add `get_repo_git_url` to code/github provider