Also:
1. Have CChainState::LoadMempool and ::ThreadImport take in paths and
pass it through untouched to LoadMempool.
2. Make LoadMempool exit early if the load_path is empty.
3. Adjust the call to ::ThreadImport in ::AppInitMain to correctly pass
in an empty path if mempool persistence is disabled.
This is a partial backport of core#25487
https://github.com/bitcoin/bitcoin/pull/25487/commits/06b88ffb8ae7f2b2a93a32908cd80e77fafd270c
Depends on D15721