Several fixes for merge file handling:
- Free a mergelist's parent_dirscanned filters the last time it is
popped or as soon as the filters are discarded due to the "n"
modifier. Aside from not leaking memory, this is needed to clean up
any mergelists defined during the parent_dirscan to avoid crashing by
trying to restore nonexistent state for them in pop_local_filters.
- Make push_local_filters save the current mergelist_cnt, and make
pop_local_filters assert that it has the correct number of mergelists
before restoring their state.
- Assert that mergelists get deactivated in strict LIFO order to catch
any glitches as soon as they happen. Free linked lists of filters in
reverse order to make that the case.
- Add a bunch of mergelist-related debug output (--debug=filter2).