WIP: Studio Publishing redesign

@andy-armstrong FYI Creating a PR so we can see if the tests all pass.
we need to add __test__ = True for those test classes which inherit from those base test classes which have __test__ = False (they are too abstract to pass silently). There are just few of those.

In most cases we do not need to explicitly state __test__ = True, as this is default behavior.