[bitcoin/bitcoin] refactor: Removal of circular dependency between index/txindex, validation and index/base (#13942)

Rebased, conflict solved, 86e36e064b18067f8c09f0a4f4bee55c76cbacf0 squashed.

Globals from `validation_globals.h` set in `validation` were moved to `validation_globals.cpp` where possible, but please note that there are still `txmempool->validation->txmempool` and `policy/fees->policy/policy->validation->policy/fees` circular dependencies that prevent moving `mapBlockIndex`, `feeEstimator` and `mempool` as it would create another CD. Similarly, `g_chainstate` cannot yet be moved to file included by `validation`, because `CChainState` uses `ConnectTrace` that uses `MemPoolRemovalReason` from `txmempool`, which includes `validation` (circular dep again). As fixing those other CDs is beyond this pull request I suggest to do it in another PR after those other lint issues are fixed.

Direct includes were added for both symbols used in `validation_…` files and symbols that are defined in `validation_…`. Where it was possible redundant includes for `validation` were removed, leading to removal of another circular dep: `checkpoints->validation->checkpoints` (!)