Adjusted gpu alloc test to use less memory.

It was sometimes failing during the night.
Permitted sliding window when the extent depends on the loop var.
Refactored IR, and made tracing good.

Remove the PrintStmt IR Node. Added String constants, IfThenElse
blocks, and Evaluate, which evaluates its Expr arg and discards it.

The IfThenElse allowed for removing the maybe_ intrinsics.

Tracing can now dump in a binary format to a file, call a custom
function at runtime, or print ascii to the terminal. It can be enabled
or disabled for each Func with fine granularity.
Merge branch 'master' of github.com:halide/Halide

Conflicts:
	src/CodeGen.cpp
Merge branch 'master' of github.com:halide/Halide

Conflicts:
	src/Tracing.cpp
	src/runtime/runtime.opencl_host.cpp
	src/runtime/runtime.ptx_host.cpp
Split now pushes evaluations upwards instead of downwards.

Simplifies better.
Added missing space to profiling printf
Made linux_clock do the syscall directly to dodge linking woes.
Fixed tracing test to reflect new split behavior.
Insert some explicit casts to squash warnings.