Reduce sitemap errors

- Filter dupes
- Ensure logic is consistent between index and brand content
Merge pull request #130 from atlasapi/sitemap-warnings-errors

Reduce sitemap errors
Initial version of granular uploads refactor. For simplicity/speed the interfaces involved have been duplicated, so
there is a standard and a Granular- version of each. The Nitro classes have then been moved across to the new Granular-
interfaces, as have the various controllers and other shared classes. Testing still needs improving.
Fix broken Tasks persistence tests
Fix errors relating to incorrect timezone on outputted date times
Fix test broken by changes to NitroGroupInformationGenerator on stage.
Add back the full upload functionality for a given uri, to enable easier testing with the granularity changes.
Tweak full uri upload to deal with non-Item content uploads.
Move 'start of time' bootstrap start time to 28th November, to give a short window for bootstrap content.
Enable YV Delta uploads, to run every 30 minutes.
Tweak output based on output of diff scripts. Misc small changes.
Actually log full exception details rather than just type of exception (log([msg], [ex]) rather than log([msg] + [ex]))
Move Bootstrap last_updated time forward to 2nd Dec.
Create marshaller per request, rather than reusing
Re-add FeedStatsStore back into upload tasks
 - Remove actual availabilty start from the ondemand id key.
 - don't expand ondemands unless they have the correct youview platform
Tweak a couple of tests broken by recent tweaks to the YV work
Ensure Pips OtherID is left in, as removal causes validation to fail for all ondemands.
Refactor Feed Statistics:
 - remove uptime, as metric is not useful
 - refactor writing, as feed stats will always be updated together
 - ensure both delta and bootstrap tasks set feed statistics correctly
Add version pid as OtherIdentifier to TVA versions