[FIX] fix how swath windows are read

- 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

- ammends and fixes 5dfa76eb8f3ae80d957dd226f2fbb3652e884a8d