Deprecate Param<void*>("__user_context"); add Target::UserContext

Forbid usage of Param<void*>("__user_context"). Instead:
-- custom user context values are specified when jitting by calling Func.set_custom_user_context
-- explicit user-context arguments for ahead-of-time compilation is now specified by adding Target::UserContext to the feature set when compiling. (When specified, the user context is always the first argument.)
Ugh, I just realized target=host in all of these breaks all testing of the form:
HL_TARGET=something_unusual make test_some_generator

which in turns broke most of the nightly testing.