General cleanups

 * Use guard clauses to return early where possible
 * All GeoLoc's return called "loc" for consistency
 * Extract out into set_address_components, etc where reasonable