**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.

{
    ChainstateManager& chainman = *Assert(m_node.chainman);
    uint256 curr_tip = ::g_best_block;
    
    
    mineBlocks(10);
    
    BOOST_CHECK(::g_best_block != curr_tip);
    BOOST_REQUIRE(CreateAndActivateUTXOSnapshot(m_node, m_path_root));
    
    BOOST_CHECK(chainman.IsSnapshotActive());
    curr_tip = ::g_best_block;
    
    mineBlocks(1);  
    
    BOOST_CHECK(::g_best_block != curr_tip);
    curr_tip = ::g_best_block;
    CChainState* background_cs;
    BOOST_CHECK_EQUAL(chainman.GetAll().size(), 2);
    for (CChainState* cs : chainman.GetAll()) {
        if (cs != &chainman.ActiveChainstate()) {
            background_cs = cs;
        }
    }
    BOOST_CHECK(background_cs);