Improve separation between fetching raw events and processed events; could be useful to disentangle those two locks in the future.
Reorganize use of FinishEvent so that there is a queue of finish-able events; we attempt to order the events before finishing them, to make reading more efficient.
Currently this is implemented by starting a thread with the sole purpose of finishing events.
The thread will work continuously to read events and finish them; it balances itself because the more it falls behind, the better-ordered events will become.  (We establish a hard-coded maximum queue size of 1000ish, to prevent ourselves from exhausting memory.)
Profiling results from this change are still pending; we expect it will help, but even if it doesn't we have much more control over the file access this way (including the option of implementing asynchronous reads).
Based on a suggestion from Mike, implement a cleaner way of specifying the branches of the raw tree to read.
Update the EdisonBatch script to be similar to the HopperBatch script, in particular to be compatible with using xrootd.