LowerSwitch should be responsible for removing all newly introduced dead blocks.
The original implementation only deleted the unreachable default block itself, leaving
its dominatee-successors (if any) unreachable.
This patch uses DominatorTree so that we know the accurate set of blocks that need to
be removed.