Migrate to using bulk epg loading.

Loading epg for each channel separately does not makes sense since it
requires too many network requests. Instead this switches to a new class that
is capabale of loading the epg records for all channels at once. The response
is preprocessed the same way the channel specific ones are processed
and is then cached and wrapped as to expose the same API as the
channel based storage.
Fix linter error.