Add ability to inject custom lowering passes from user code

Can be used for application-specific munging or checking (e.g. assert
that there are no vector scatters). Will be useful for tests in general.
Add test for custom lowering passes.
Switch custom passes to be IRMutators

Also includes some cleverness to hopefully avoid split heap woes on
Windows.
Modified lowering to dump the IR to debug(1) after every custom lowering pass.
Merge branch 'master' of https://github.com/halide/Halide into custom_lowering_passes
Merge pull request #548 from halide/custom_lowering_passes

Add ability to inject custom lowering passes from user code