Add support for optional fields when geocoding

This will require a major version bump, as the API has changed: parsing
options hashes out of the splatted arrays was proving way too hairy for
reverse geocoding, so both `geocode` and `reverse_geocode` now expect to
be handed an array at all times and an optional hash of options.

Signed-off-by: David Celis <me@davidcel.is>