Populates empty fields with data from the Google GeocodeService

I've added a function hook that when the user hits 'Locate on map', it
will populate any fields that are empty (common usecase for me was
populating the postcode / country fields). I also did a code cleanup.