Changed KeepTopN and KeepWithinXPercent to do so on a per-composition basis.  So it will keep
the top N of each composition it encounters instead of just overall.
Changed LoadStructures to load the structures once when the pipelib gets initialised and then
not again.