Expose a routine to intialize llvm. Needed it for testing an idea and this
seems a decent design to commit.
Add support for ImageParam values becoming ExternFuncArguments. Was
omitted previously and is just a smalladdition. Added test case.
Allow passing in Target explicitly for calls that previously depended
on HL_TARGET environment variable via get_target_from_environment. Most
previous behavior is preserved but JIT calls default to get_host_target
instead of get_target_from_environment as the latter would crash
if the target does not make sense for the current host.

Added a method to parse a target string.
Fix a bug with multiple outputs from an external array function
not compiling because of a mismatch in the name used for the bounds
representing the entire output Tuple.

Added a test case for to catch this failure.
Re-enabled ability to control default jit target features from environment.

Use HL_JIT_TARGET. The host, arch, and os must match the host target.

This means the nightly tests actually test different feature sets again
(e.g. no avx, cuda).
Fixed saving Image<signed integer type>
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
Merge branch 'master' into opengl
Makefile updates
Import additional OpenGL functionality
halide_opengl_dev_run: copy arguments to OpenGL
Extend test program to include all necessary calls to OpenGL backend
Save information about each texture as it's allocated in
halide_opengl_dev_malloc for later lookup when executing a kernel