Refactored authentication flow

Refactored authentication flow so that new flows can be created. Currently this codebase only supports the Web Server flow, which means the server will store the access token. Salesforce provides documentation that allows for additional user flows. If anyone wants to add these.