Adding optional constructor param to inject an instance of a ServiceFactory

The ability to register custom services to PHPOAuthLib was added last year (see: Lusitanian/PHPoAuthLib#103)

This pull request allows the user to inject an instance of `ServiceFactory` into this library's `OAuth` class to support the above functionality. To maintain BC, the `ServiceFactory` object is not required and by default it will instantiate a new one, as it currently does.