Added access to the stride of image params

Useful for making static promises about the stride
Made floating point abs call library functions

Instead of doing compare and select
Default to 2 threads on 32-bit systems
Better handling of floating point min and max on arm
Merge branch 'master' of github.com:halide/Halide
Moved is_const_power_of_two into IROperator
Made the cache actually do something in CodeGen_C
Extern declarations for tracing functions in CodeGen_C
Better handling of let statements, div, and mod in Codegen_C.

Also fixed a large bug in substitute - it was descending
inside statements and expressions that clobbered the name
Give llvm more metadata about loads and stores

To help with alias analysis.
Use substitute instead of let statements in unrolling and inlining

Peephole optimization can't see through let statements, and it was
failing to simplify some things. In theory, substitutions risk code
explosion. This doesn't happen immediately, as the IR node you
inject is still one object in memory. After a few passes though, these
tend to get uniquified.

We may have to revert this and do better peephole optimizations through
let statements if this explodes.
Realize enough to cover all writes to a buffer, instead of all accesses

I believe we already prove that we don't access where we don't write.
This produces simpler IR.
One more simplification pass.

I was seeing trivial let statements survive until the end.
Fixed the build for llvm 3.2