Youview BBC Nitro initial upload

includes refactor of publisher specific code to remove duplication.
Total non-issue but;

"iterable.iterator().next() is perfectly clear and readable and unambiguous. I know exactly what it does, whereas with Iterators.getFirst(), I have to run off and look up how that library designer decided to do it." - Guava Dude.

I prefer iterator().next() because seeing null in code makes me sad, but functionally they are the same so meh