Update GoogleCalendar widget to latest google api.
Update GoogleCalendar widget to latest google api.

This works with google_api_python_client 1.4.2
This commit also removes the generic api key. Users
must now add their own api key in the form of a
~/.credentials/client_secret.json file. Instructions
are given for how to obtain this file.

The credentials obtained from the api key and calendar
login are stored at ~/.credentials/google-calendar-widget.json.
The location and name of this file are hard-coded (I didn't
see any good reason to move them around).

To start the credentialling process, users must click on the
"calendar not initialized" text. An oauth2 web page will pop
open requesting login to google. Once the login is successful,
an authorization button is displayed. Clicking on this
authorization button results in the google-calendar-widget.json
file being populated with credentials.

more updates to GoogleCalendar widget

This commit:
a) Adds back the user-configurable storage_file.
b) Includes some code reformatting.
c) Changes the credentials initialization logic a bit so that the
   oauth2 web page comes up automatically. Following authentication
   the user may need to click on the "Calendar not initialized."
   text to begin the polling process.

Closes #812

soulchainer/qtile,himaaaatti/qtile,dequis/qtile,rxcomm/qtile,frostidaho/qtile,qtile/qtile,kynikos/qtile,cortesi/qtile,soulchainer/qtile,cortesi/qtile,frostidaho/qtile,de-vri-es/qtile,de-vri-es/qtile,rxcomm/qtile,qtile/qtile,himaaaatti/qtile,ramnes/qtile,tych0/qtile,zordsdavini/qtile,jdowner/qtile,kynikos/qtile,tych0/qtile,zordsdavini/qtile,flacjacket/qtile,flacjacket/qtile,dequis/qtile,jdowner/qtile,ramnes/qtile