Google Plus backend allows for a server-side flow that can grant a refresh token that can be subsequently used to perform operations on behalf of the user, even if the user is not online.
Google Plus backend allows for a server-side flow that can grant a
refresh token that can be subsequently used to perform operations on
behalf of the user, even if the user is not online.

This commit allows for that scenario by exchanging the passed in code
for a server-side access token and a refresh token. The refresh token is
    only granted the first time the user authorized the application
    (unless approvalprompt = force in the JavaScript).

This commit also fixes a bug where the extra data given by Google+ were
ignored

python-social-auth/social-storage-sqlalchemy,merutak/python-social-auth,degs098/python-social-auth,nirmalvp/python-social-auth,ByteInternet/python-social-auth,mathspace/python-social-auth,Andygmb/python-social-auth,VishvajitP/python-social-auth,JJediny/python-social-auth,webjunkie/python-social-auth,nirmalvp/python-social-auth,JJediny/python-social-auth,jameslittle/python-social-auth,S01780/python-social-auth,MSOpenTech/python-social-auth,lneoe/python-social-auth,SeanHayes/python-social-auth,python-social-auth/social-docs,mathspace/python-social-auth,JerzySpendel/python-social-auth,barseghyanartur/python-social-auth,joelstanner/python-social-auth,JJediny/python-social-auth,daniula/python-social-auth,python-social-auth/social-app-django,garrett-schlesinger/python-social-auth,python-social-auth/social-core,alrusdi/python-social-auth,garrett-schlesinger/python-social-auth,JerzySpendel/python-social-auth,cmichal/python-social-auth,bjorand/python-social-auth,mark-adams/python-social-auth,drxos/python-social-auth,firstjob/python-social-auth,daniula/python-social-auth,robbiet480/python-social-auth,ononeor12/python-social-auth,ononeor12/python-social-auth,VishvajitP/python-social-auth,mathspace/python-social-auth,merutak/python-social-auth,falcon1kr/python-social-auth,jeyraof/python-social-auth,jameslittle/python-social-auth,san-mate/python-social-auth,S01780/python-social-auth,imsparsh/python-social-auth,san-mate/python-social-auth,fearlessspider/python-social-auth,yprez/python-social-auth,alrusdi/python-social-auth,degs098/python-social-auth,MSOpenTech/python-social-auth,merutak/python-social-auth,msampathkumar/python-social-auth,robbiet480/python-social-auth,tkajtoch/python-social-auth,clef/python-social-auth,chandolia/python-social-auth,clef/python-social-auth,VishvajitP/python-social-auth,san-mate/python-social-auth,lamby/python-social-auth,barseghyanartur/python-social-auth,frankier/python-social-auth,lawrence34/python-social-auth,cjltsod/python-social-auth,jameslittle/python-social-auth,mchdks/python-social-auth,ononeor12/python-social-auth,lamby/python-social-auth,python-social-auth/social-app-django,joelstanner/python-social-auth,yprez/python-social-auth,iruga090/python-social-auth,contracode/python-social-auth,mark-adams/python-social-auth,chandolia/python-social-auth,joelstanner/python-social-auth,rsteca/python-social-auth,duoduo369/python-social-auth,jneves/python-social-auth,noodle-learns-programming/python-social-auth,hsr-ba-fs15-dat/python-social-auth,muhammad-ammar/python-social-auth,DhiaEddineSaidi/python-social-auth,msampathkumar/python-social-auth,cjltsod/python-social-auth,lamby/python-social-auth,lneoe/python-social-auth,DhiaEddineSaidi/python-social-auth,lneoe/python-social-auth,lawrence34/python-social-auth,ByteInternet/python-social-auth,muhammad-ammar/python-social-auth,Andygmb/python-social-auth,python-social-auth/social-core,firstjob/python-social-auth,alrusdi/python-social-auth,tobias47n9e/social-core,tkajtoch/python-social-auth,barseghyanartur/python-social-auth,Andygmb/python-social-auth,jeyraof/python-social-auth,hsr-ba-fs15-dat/python-social-auth,tkajtoch/python-social-auth,fearlessspider/python-social-auth,henocdz/python-social-auth,firstjob/python-social-auth,noodle-learns-programming/python-social-auth,michael-borisov/python-social-auth,robbiet480/python-social-auth,drxos/python-social-auth,noodle-learns-programming/python-social-auth,ariestiyansyah/python-social-auth,rsteca/python-social-auth,bjorand/python-social-auth,wildtetris/python-social-auth,frankier/python-social-auth,tutumcloud/python-social-auth,cmichal/python-social-auth,imsparsh/python-social-auth,ByteInternet/python-social-auth,nirmalvp/python-social-auth,mark-adams/python-social-auth,mchdks/python-social-auth,cmichal/python-social-auth,ariestiyansyah/python-social-auth,falcon1kr/python-social-auth,wildtetris/python-social-auth,drxos/python-social-auth,wildtetris/python-social-auth,bjorand/python-social-auth,jeyraof/python-social-auth,tutumcloud/python-social-auth,rsalmaso/python-social-auth,python-social-auth/social-app-django,iruga090/python-social-auth,daniula/python-social-auth,falcon1kr/python-social-auth,webjunkie/python-social-auth,chandolia/python-social-auth,mrwags/python-social-auth,contracode/python-social-auth,fearlessspider/python-social-auth,iruga090/python-social-auth,jneves/python-social-auth,henocdz/python-social-auth,lawrence34/python-social-auth,SeanHayes/python-social-auth,webjunkie/python-social-auth,rsalmaso/python-social-auth,mchdks/python-social-auth,msampathkumar/python-social-auth,duoduo369/python-social-auth,degs098/python-social-auth,DhiaEddineSaidi/python-social-auth,ariestiyansyah/python-social-auth,rsteca/python-social-auth,michael-borisov/python-social-auth,mrwags/python-social-auth,python-social-auth/social-app-cherrypy,clef/python-social-auth,jneves/python-social-auth,hsr-ba-fs15-dat/python-social-auth,JerzySpendel/python-social-auth,muhammad-ammar/python-social-auth,MSOpenTech/python-social-auth,contracode/python-social-auth,henocdz/python-social-auth,imsparsh/python-social-auth,mrwags/python-social-auth,michael-borisov/python-social-auth,S01780/python-social-auth,yprez/python-social-auth