Optimization: only keep setBlockIndexValid entries that are possible improvements

Before, we kept all valid CBlockIndex* entries in setBlockInvalidValid, but as it is only used to select potential new tips to activate, it suffices to only keep entries that are at least as good as the current tip.

This should save some 13 MiB RAM in the stable synced state.