Handle the case where result data is returned across multiple data events

Depending on the exact circumstances of how data is returned from Google maps, multiple data events may be called with parts of the JSON response.  If this occurs, JSON.parse fails with an uncaught exception.  This commit fixes the issue by waiting until all data is received to parse it, and additionally adds an exception handler in the (unlikely) event that the API returns invalid JSON.