Make Oauth Client class constructors have mandatory parameters.

This PR removes the last of the `Factory` usage (pending a couple other PR's being merged) by reworking the constructors of the `Oauth1\Client` and `Oauth2\Client` classes.

Previously, all constructor params were optional, and if not provided, the class would create the dependencies itself. This hides the complexity of the class behind default parameters, but is bad practice (IMO) because it also hides from the casual viewer what a classes true dependencies are.