Add support for passing a void * user context value to Halide functions; if present,
this pointer is passed through to Halide runtime routines (halide_malloc, halide_printf,
etc.)

This change requires that all existing user-written Halide runtime routines be modified
to take a void * parameter as their first argument.
Address pull request comments.

Renamed get_user_context() in Param.h to user_context_param(), so as to not
clash with CodeGen::get_user_context().

Added user_context as an explicit argument to halide_assert in HalideRuntime.h.

Various indentation and formatting fixes.
Added dummy kernel to avoid empty program errors on some OpenCL implementations
Merge branch 'master' of https://github.com/halide/Halide
Avoids loss of low significant bits in conversion from float to string
Turned on FP_CONTRACT for OpenCL programs.
Fixed least significant bits of floats causing errors for C targets.
Fixed precision upper bound
Changed from L to ULL suffix on integer constants in the division tables
update to call_count was getting elided if we don't read from it
Added spir_common_dev.ll with most math functions implemented
Merge branch 'master' of https://github.com/halide/Halide
Portable way to convert floats to hex strings.
Fixed crash when halide_set_cl_context is not called
Fixed linker errors for multiple halide objects using OpenCL
Added OpenCL libs for OpenCL targets
Removed debug flag
Added OpenCL schedules
Merge pull request #205 from dsharlet-intel/master

Apps Makefile support for OpenCL + A bunch of small fixes
Fix bugs in CodeGen_GPU_Host.cpp (not always passing user context)