Factor out geocoder strategy into seperate method.

The general geocode method is now a wrapper around other geocode
methods, in particular it tries to look up the code in a the hash,
then tries google. Better to factor this thing out because the
strategy is only going to become more complicated.
First pass at simple region-based searches.

The parsing for the region string is nonexistent -- it has the same
strategy as the geocoder. Basically, if there is a search region
defined, a new close_enough method determines if a friend's coords are
close enough to the regions coords to be considered in the
region. This uses a haversine function to find the arc of the
greatcircle.

TODO: really we don't want to be processing all these friends who have
undisclosed locations, nor, if we have a search region, those friends
whose coordinates lie outside of it.