Implement steps in GitHub oauth process

The client will glue these steps together.