delay algorithm::intialize until *after* the first file is open
This is to allow users to query meta-data inside initialize. Right now this also allows users to retrieve event-data inside initialize (unless the first file contains no events), but that will be disabled at a later point (for compatibility with Athena).
With this change we no longer allows to run on samples without any files in them. I could potentially somehow work around that, if needed, but there isn't a strong use-case for that and it would mean that user code also would need some specialized handling for that case.
Also removed the Module::postInitialize method since the one module using it could also run in onInitialize instead, thereby simplifying the module interface somewhat. This doesn't really have anything to do with anything, but I noticed it while working on this code, so I made the change as part of this MR as well.
I didn't yet take a close look at !22302 (merged), but these two MRs seem more or less orthogonal.