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.
Added test to check the results of branches_linearly_in_vars to demonstrate the correctness of the changes in the last commit.
constexpr -> const to make non-C++11 compilers happy.
Merge pull request #552 from halide/branch_visitors

Branch visitors for detecting and mutating branches.
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
s/WITH_PNACL/WITH_NATIVE_CLIENT/ in a few places

This prevented specifying GPU targets with PNaCl targets
Merge pull request #553 from halide/WITH_NATIVE_CLIENT

s/WITH_PNACL/WITH_NATIVE_CLIENT/ in a few places
EXPORTed operator<<(ostream, Stmt)
Added EXPORT to another defininition of operator<<(ostream, Stmt)
Added get_target_triple to CodeGen_PNaCl.
PNACL -> PNaCl
Move NamesInterface from Internal to Halide namespace
Merge branch 'master' of https://github.com/halide/Halide
Add Generator::get_filter_parameters()
Merge branch 'master' of https://github.com/halide/Halide
Change int -> size_t in GeneratorBase::get_filter_parameters()