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 pull request #159 from steven-johnson/master

Upgrade clocks to nsec resolution
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.
Partially compensate for profiler overhead when reporting times

We now attempt to subtract the average profiler overhead when reporting
times; previously, times of outer loops included the profiling overhead
of the inner loops. The approach taken here is coarse, but provides
much better results than previously.
CodeGen_ARM now always replaces profiling_timer with halide_current_time_ns

Both Android and iOS disable user-mode access to the cycle counter in
stock builds; might as well assume that all ARM devices should avoid
using the cycle counter.
Add missing include to runtime.ptx_host.cpp