Refactor GeocodingService to return Place objects instead of GeocodeResult objects
Description
Learning from my mistakes in Atlas, I don't want to have 3 different place types in common use. Having 2 is more than I'd like (but necessary). Three is excessive so we now convert GeocodeResult to Place in the geocoder. Code is reused across multiple implementations by changing GeocodingService to be an abstract class instead of an interface and putting the logic there.
This led to some dead code that I have removed, though there may be more.