Merge pull request #482 from halide/specialize_branched_loops

Specialize branched loops
Add more asserts to IR.cpp

Also clean up some IR.h docs. Some assumed rules were neither documented
nor enforced.
Fixed a bug involving creating branches containing for loops with undefined bodies. Added a test case to test/correctness/specialize_branched_loops that demonstrates the bug.