Modified CHECK_* macros to return error even without gpu_debug
Merge branch 'master' of https://github.com/halide/Halide
Added a prototype for Function specialization.
Merge branch 'master' of https://github.com/halide/Halide
Specializations now get their own schedules

and bounds inference understands the IfThenElses produced,
which means you can finally write fallback schedules for small inputs.

Part of this required wrapping the Schedule class behind a
reference-counted handle, so there's a lot of trivial code changes.

This also required many new simplification rules to keep the resulting
logical operators sane. Previously we never really generated big trees
of ands and ors.
Allow malloc to return NULL when the size is zero.
Bugfix in IREquality resulted in IfThenElse nodes never equalling
Fixed semantics of halide_init_kernels/halide_release to not rely on OpenCL ref counting
Added OpenCL linker flags
Merge branch 'master' of https://github.com/halide/Halide
Added a new test to specialize
Merge branch 'master' into specialize

Fix class/struct discrepancy in header file.

Conflicts:
	src/CMakeLists.txt
Merge branch 'master' of https://github.com/halide/Halide
Fix horrifying simplify bug

a && a -> false
Added halide_error_varargs declaration to HalideRuntime.h (was already defined in posix_error_handler.cpp)
Fixed race conditions/bugs encountered when running OpenCL operations in parallel
Added test running GPU tiles nested within parallel loop
Removed spin locks not protecting Halide race conditions
Merge branch 'master' of https://github.com/halide/Halide
Correction for mining And and Or chains.