Overhaul of binary tracing to support post-mortem trace analysis.

Fixed bug causing trace files to be ridiculously huge. They're still large.

Every trace event has a parent id. The trace function returns an integer to
use as a parent id for child events. This helps disambiguate loads/stores
to different realizations of the same func occuring in different threads.

There's the start of a trace analysis tool checked in.
Merge branch 'master' of github.com:halide/Halide

Conflicts:
	src/CodeGen.cpp
	src/Func.h
	src/JITCompiledModule.cpp
	src/JITCompiledModule.h
	src/runtime/HalideRuntime.h
	src/runtime/tracing.cpp
	test/correctness/autotune_bug_2.cpp
	test/correctness/autotune_bug_3.cpp
	test/correctness/autotune_bug_4.cpp
	test/correctness/tracing.cpp
	test/correctness/tracing_stack.cpp