Reorganize exceptions into their own namespace
Update ProviderUserDetails to be more explicit about what properties will be available
Added basic test for ProviderUserDetails
Add Request dependency to StateManager class to remove call to  superglobal
- Add basic tests for StateManager
- Lower visibility on a few methods in StateManager that were only needed internally
- Move throwing of exception when state verification fails out into OAuthManager
Add basic tests for Provider
Update service provider to register requests dependency in each provider to remove call to $_GET superglobal

Not entirely satisfied with this as it makes instantiating a provider a little more cumbersome. Thinking I may abstract the request behind an interface, and have the OAuthManager inject it into each provider automatically as they are registered. Not sure yet...