allows for method geocode to ingest an object

allows to call the geocode method as

```
gm.geocode({address: "444 Castro Street", region:"US", language:"EN"}, callback);
```

instead of 

```
gm.geocode("444 Castro Street", callback, false, null, "US", "EN");
```

why? two reasons:
- It's cleaner to call
- It allows for compatibility with [memoizeasync](https://www.npmjs.org/package/memoizeasync) which might save you several requests when geocoding the same places over and over again.