Only include undo.h from main.cpp

Built on top of #5100.
coins.o doesn't need to depend on undo.h (Decouple CCoins from CTxInUndo)
miner.o neither (Decouple miner.o from CTxUndo)
Finally, CBlockUndo can be moved from main.h to undo.h if it is first decoupled from CDiskBlockPos.

This part was removed in head.