Generally we're better off using the chainActive random access vector
than using the CBlockIndex linked lists, whenever we can.
Bonus: correctly handle the case when pindex is a child of Tip (i.e.,
when pindexFork == Tip), where it's not needed to invalidate anything.
Not sure why that would ever happen but why not do it right...