Allow other services to standardize addresses and spin off CRM_Utils_Address_USPS into an extension
Overview
Currently CRM_Core_BAO_Address::fixAddress
is hardcoded to use CRM_Utils_Address_USPS
alone. It allows an "address_standardization_provider" to be set but it will only recognize USPS.
Proposed behaviour
Allow for other providers and restructure so that USPS is not hardcoded here. USPS could extend an AddressStandardization
class or something like that. Could use CRM_Utils_GeocodeProvider
for inspiration.