Add a list of whitelisted event ids, which the events API will now filter for.

i.e. The events API will now only return ids in the whitelist
Introduce Spotlight keyword extraction
Guess Atlas topics from KM keyphrases
Implement topic search cache persistence
Wire in modules and stores for the KM topics
Fix KM ContentExtractor test to check topics are set
Introduce a couple of new tests
Merge pull request #541 from atlasapi/events-filter

Add a list of whitelisted event ids, which the events API will now filter for.
Merge pull request #542 from atlasapi/km-topics

Guess Atlas topics from KM keyphrases
Fix KM topic resolution

The TopicCreatingTopicResolver doesn't actually write them, apparently
Do awful correctness-checking manual topic merge
Fix a frankly quite pointless test
Relax constraint on number of episodes in brand

We generally don't want picks to include items from brands
with many episodes, since they're generally not that
interesting. However, this systematically excludes some
genres, notably soaps. We'll therefore not apply the
exclusion based on number of episodes if an item has a
particular genre. Initially, we're setting that to just
soaps, but this list may be expanded.
Merge pull request #543 from atlasapi/soap-genre-picks

Relax constraint on number of episodes in brand
Correct condition for recording last processed schedule day
Relax predicate to allow null repeat flags

Even some BBC One regional variants don't have this set consistently.
map sport -> timezone for Opta Events ingest.
Merge pull request #546 from atlasapi/fix-event-timezones

map sport -> timezone for Opta Events ingest.
Simpilifer/Complexifier changes for Broadcast OTA update
Merge pull request #547 from atlasapi/broadcast-changes-for-ota

Simpilifer/Complexifier changes for Broadcast OTA update