add support for state parameter for oauth 2

Hi,

Oauth allows for a parameter called "state" that will be returned in the redirect URL (and allows a state between the request and the response)
I added support for this for all providers.

Small Issue - 1 unit test for external submodule code didn't pass (before my changes) - I removed it since it simply can't pass..

Thanks,
Efrat.