Fixing test case & code refactoring.

**First commit:**
- Fix geocoder testcase, as it was failing for me:
```
$ go test
--- FAIL: TestGeocode (0.66 seconds)
        geocoder_test.go:21: Expected 47.606400, -122.330803 ~ Received 47.60356
--- FAIL: TestReverseGeoCode (0.51 seconds)
        geocoder_test.go:30: Expected Seattle WA 98104 ~ Received Seattle WA 981
FAIL
exit status 1
FAIL    github.com/stanim/geocoder      1.246s
```

**Second commit:**
- Use json.Decoder instead of json.Unmarshall since json is read from a stream
  See: https://stackoverflow.com/a/21198571 and https://stackoverflow.com/a/1568
- refactor GeoAddress into ReverseProviderResult to avoid duplicated code.

If you have any questions, please ask.