Geocoding

First, it rename `lat` and `lon` fields to `latitude` and `longitude` for clarity and perfect fit for Geocoder (avoid config code)

It geocode addresses automatically using Google geocoding API (limited to 2500 req/24h)
* it geocodes location only when latitude and longitude coordinates aren't provided
* add a FakeGeocoder object for clear tests. We could use Geocoder [built-in solution](https://github.com/alexreisner/geocoder#testing-apps-that-use-geocoder) but it makes the tests obscures and harder to understand as the expected coordinates of an address, are set somewhere else, far from the test itself. (I'm trying though right now a mid-way solution combining both)

Next improvement could be avoiding geocoding if the address havn't changed. I'll take care of it if you are OK.

https://trello.com/c/wbTFtHx9
Yep but besides reading an attr from an ENV var, you lock yourself into one possible value for country for the whole app, and worse, what happens when one will forget setting the ENV variable, he can't see why the geocoding is fucked up unless pulls some hair :neckbeard: and takes a closer look to the code ;-)
Note: doing a `ENV.fetch` could be safer, but it would throw an exception, not right after a deploy, but only when a geocoding is triggered, when submitting a form or importing raw data. That's not cool :bomb:.

Having a field with a default value is almost free (simple migration only), and still updatable (Rails admin FTW).

As u wish, your call ;-)