This refactors the SelReport writer to expose the subbank writing functions. Then the large event passthrough mechanism uses these functions to write a SelReport.
FYI @dcraik. You can merge this into your branch when ready.
cc @raaij