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.
Merge branch 'wooparadog-service-provider'