Support state param for callback

Hi

I took inspiration from https://github.com/Diego81/omnicontacts/issues/44

I needed the state param on the OAuth2 request to Google ... so I wasn't entirely sure on the OAuth1 changes ... the code changes on the issue above for OAuth1 seemed very different and so I went with what seemed correct based on the specs I added.

I also wanted to only add the state param if one was included in the query string otherwise state= was being added unnecessarily.

Anyways ... let me know what you think and I can make changes.

Cheers
Shane