Dependency injection

Not only this removes hard coded dependencies, this also allows all classes extending the OAuth class to inherit the dependencies; this removes redundant ``` use \Config ```.

I used a setter injection to avoid the constructor class being loaded with the injected dependencies. I'm not sure if it should have been done this way or by binding dependencies with Service Providers. What's left is changing all hard coded classes.