user_context should be a GeneratorParam, not a Param

user_context is a bit of an odd beast: you really want to enable it (or
not) based on the runtime environment you’re in, rather than having to
declare it as an intrinsic Param to a Generator. (A given Generator may
need user_context in some use cases, and may *not* need it in others.)
This is a job for GeneratorParam! Now all Generators get a
GeneratorParam to control whether user_context should be emitted (or
not) when emit_filter is called; it defaults to false, and if enabled,
the user_context always goes in the first parameter.
Merge branch 'master' into ucon-generator
Merge branch 'master' into ucon-target
Deprecate Param<void*>("__user_context"); add Target::UserContext
Merge branch 'master' into ucon-target
Generators should allow Param<void*>
Remove set_custom_user_context()
Merge branch 'master' into ucon-target
Minor linux build fix.
Merge pull request #525 from halide/ucon-target

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