automatic locations

Creates a command that generates locations object for locations with many entries. 
* Neighbor class takes an object with coordinates. Finds other objects with nearby coordinates.
* WebFinder finds uses the Neighbor class to find groups of entries (or any object with coordinates) that  are close to each other.
* CoordinateCenter finds the average latitude and longitude in those groups.
* Csv maker formats a file of world cities.
* LocationFinder takes the coordinate centers and the list of cities.  It finds cities that are near those centers.
* LocationBuilder builds new Active Record Locations for each city that Location Finder finds.
I didn't want my CSVbuilder class to know about latitude and longitude.  I'm hoping that I'll be able to use it for other CSV files.  To keep it neutral with regards to other models,  I put a filter method in the CSVBuilder. The filter methods takes a lambda as an argument and filters through the rows in the csv, to return just the rows that the lambda is true of.