CCP improvements
- Adds asserts that a reachable if/match has a reachable condition/sum
- Handles constant propagation of reduce, which takes into account whether the reduct value is reachable and if not ignores it for constant propagation purposes; this allows CCP to identify constant reduces and eliminate them. Also asserts that if a reduce is reachable its initial value must be as well.