Hacky fix to mcs switch + unreachable bug

Fixes test-870.

Added a IsSwitchBlock flag to Block. If it is false, the unreachability
state never reverts back to false once it's set to true. IMHO a cleaner
refactor should be considered to obviate this.