Google Calendar

Work in progress for a google calendar node. Several starting points for discussion:

* ~~I've missed something in search/replacing the flickr code so the 'displayName` doesn't seem to be used correctly. I can't see why.~~ Fixed. Thanks to @hbeeken for spotting my mistake.
* At the moment, the google config node requests profile and calendar scope. This is fine for now. In future, I think the GoogleNode should request profile scope and the calendar node should request the calendar scope. And later other nodes can incrementally increase the scope. Google supports this kind of incremental approach. Or maybe the google node just requests the scopes from the nodes that use it - is there a way to find this out from the config node? - and re-authorizes with the complete new set.
* The refresh process - it is not trivial but I think I've got it working reliably.
* There should be a way to re-authenticate - in case of errors with the refresh process.

Comments/thoughts welcome.

I would probably add more information into the tooltip here to be honest. This is because there are several options available on the Google pages and therefore the user might need more guidance. I personally got confused. Just finding out as I write this why I got  401, invalid_client from Google!