[FIX] fix Swath window estimation

fixes how the scans of a Swath experiment are assigned to their respective Swathes. This was necessary due to the fact that we encountered Swath files that had intermittent MS1 scans or missing/empty scans and thus simply counting did not work any more. This commit contains the following changes:

- store center of a window in a SwathMap
- allow reading of Swath windows in any random order (map read SWATH
  scans directly by their precursor m/z). This makes no more assumptions
  about the order in which the scans are stored.
  - allows for missing scans in between
  - allows for MS1 scans in between
- allows to provide a set of swath boundaries to the consumer

- [TEST] write tests for random order reading