[wip] Google Places node

Performs a [Google Places text search](https://developers.google.com/places/documentation/search#TextSearchRequests).

The incoming message can provide the following properties:
* `payload` - a text search string
* `location` - an optional object with `lat`, `lon` and `radius` properties. The radius is optional and will default to the maximum permitted 50km. The location is used to weight results but prominent places outside the vicinity may be still returned by the API.

If the query returns one or more results, then the message sent from the node will have properties relating to the first place in the results:

* `payload` - the place name with, if available, the full address
* `title` - the place name
* `location.lat` - the latitude of the place
* `location.lon` - the longitude of the place
* `location.description` - same as payload above
* `html_attributions` - the [HTML attributions](https://developers.google.com/places/documentation/search#PlaceSearchResults) from the response
* `data` - the raw data for the *place* from the [Google Places search results](https://developers.google.com/places/documentation/search#PlaceSearchResults)

If the query results in an error or the result contains no place results, then the message sent from the node will have no payload but will have properties:

* `error` - an error string
* `data` - the raw data of the complete result