Support getting release versions via API call

Extracted release version providers for CDN and API implementations.
ReleaseBackend chooses a provider based on whether the server
supports the 'available_releases' resource.