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.
Fix bugs in CodeGen_GPU_Host.cpp (not always passing user context)
Added parens around cast in Select visitor (OpenCL C compiler issue workaround)
Merge pull request #203 from mmp/user-context

Add support for passing a void * user context value to Halide functions;...
Possible fix for sliding window bounds bug
Merge branch 'master' into sliding_window_bounds_bug
Merge branch 'master' of https://github.com/halide/Halide
Slight simplification of addressing math in interpolate.
Removed debug printfs from SlidingWindow
Made static tests depend on HalideRuntime.h in Makefile
Turn off sliding for reductions.
Sliding reductions now substantially more correct.

Previously new pure values were clobbering old update values.
gitignore updates
Removed code dump from compile_to_src
Merge branch 'master' of https://github.com/halide/Halide