Add interfaces for resolving and writing ChannelGroups
Changes to Channels/ChannelGroups persistence, and to related tests.
Of note - channels written to the channels field in ChannelGroups will
be written out as ChannelNumberings with null ChannelNumber, as well as to the existing
channels field
Adapt the persistence layer in light of new temporal fields. Moves some of the linking logic around parent/variation channels, platforms/regions and channelNumberings into the persistence layer from the ingest task. Also reworked the Channel caching layer into separate write-through cache.
Refactor of the channels persistence code, along with changes relating to new Channel fields
Get method names for channel numberings have changed, causing knock-on changes in persistence
channel number field changed to string
Fixed broken test
Extensive refactor of persistence layer prompted by refactor of channels ingest
Changes to the channels cache to timeout the cache after 5 minutes, due to it not expiring channels on the app server when writes occurred on processing
 - Simplify caching channel layer to only have a single cache.
 - Add error message but don't fail if duplicate aliases found during aliasPrefix lookup
 - Simplify channels persistence by removing caching from processing (but not from front end)
Ensure channel caching only performed for front-end
Change channel cache to be BackgroundComputingValue instead of LoadingCache
Log error if duplicate alias found on channels, rather than throwing error.
It helps if actually start/stop the BCV...
Refactor createOrUpdate method in MongoChannelStore to extract methods and make code more readable
Merge pull request #58 from atlasapi/mbst-4019-ingest-pa-channel-data

Ingest Channels from PA