**Is your feature request related to a problem? Please describe.**

Warning on building using g++ 8.3.

```
 1 In file included from ./txdb.h:11,
 2                  from ./validation.h:26,
 3                  from ./test/util/chainstate.h:13,
 4                  from test/validation_chainstate_tests.cpp:11:
 5 ./chain.h: In member function ‘void validation_chainstate_tests::chainstate_update_tip::test_method()’:
 6 ./chain.h:422:27: warning: ‘background_cs’ may be used uninitialized in this function [-Wmaybe-uninitialized]
 7          return vChain.size() > 0 ? vChain[vChain.size() - 1] : nullptr;
 8                 ~~~~~~~~~~~^~
 9 test/validation_chainstate_tests.cpp:109:18: note: ‘background_cs’ was declared here
10      CChainState* background_cs;
11                   ^~~~~~~~~~~~~
12
```

**Describe the solution you'd like**

Able to build without warnings.

**Describe alternatives you've considered**

N/A.

**Additional context**

`cd src/ && make test/test_bitcoin-validation_chainstate_tests.o`

Bisecting this warning, I ended up in revision 673a5bd3377929a0
by @jamesob.

Thank you very much and please excuse the noise.

};
    CChainState& c1 = WITH_LOCK(cs_main, return manager.InitializeChainstate(&mempool));
    c1.InitCoinsDB(
         1 << 23,  true,  false);
    WITH_LOCK(::cs_main, c1.InitCoinsCache(1 << 23));
    
    {
        LOCK(::cs_main);
        auto outpoint = add_coin(c1.CoinsTip());
        
        
        c1.CoinsTip().SetBestBlock(InsecureRand256());
        BOOST_CHECK(c1.CoinsTip().HaveCoinInCache(outpoint));
        c1.ResizeCoinsCaches(
            1 << 24,  
            1 << 22  
        );
        
        BOOST_CHECK(c1.CoinsTip().HaveCoinInCache(outpoint));
        c1.ResizeCoinsCaches(
            1 << 22,  
            1 << 23  
        );
        
        BOOST_CHECK(!c1.CoinsTip().HaveCoinInCache(outpoint));
    }
    
    WITH_LOCK(::cs_main, manager.Unload());
}
BOOST_FIXTURE_TEST_CASE(chainstate_update_tip, TestChain100Setup)