add user agent parsing
introduce DownloadIntentClean table
analytics_downloads_per_hour uses clean intents
EpisodeDownloadAverage uses clean intents
migrate more code to use clean intents
episode chart: remove "top episode"