Fix bugs in PersistenceWindowPool

- Make it resilient against very small store size and memory size
  configurations.
- Make `allocateNewWindow` give up if it cannot map a BrickElement reasonably
  quickly.