This is follow up after https://reviews.llvm.org/D20957
There were concerns that in it's current form EraseBlock operation is not efficient enough. Considering that same problem was fixed for LVI (https://reviews.llvm.org/D11651) we should do the same for BranchProbabilityInfo.
This change replaces existing results cache: "(BB, SuccessorIdx) -> BranchProbability" with "BB -> (SuccessorIdx -> BranchProbability)". This allows us to efficiently perform basic block removal in a cost of slightly more expensive lookups.
I don't quite like this EdgeProbablilityRecorded gets checked in multiple different places. It is better to isolate in one private helper function getEdgeProbability_(Src,index) that returns unknown when the index is out of range.