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)
Merge pull request #203 from mmp/user-context

Add support for passing a void * user context value to Halide functions;...