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()
Fixed excessive string manipulation during bounds inference.
Removed useless debugging assert.
full_name -> name_with_stage.
Simplified logic around comparing stage names to for loop names.
Fix for trunk llvm
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
Merge branch 'master' into optimize-compiler
Merge pull request #526 from halide/optimize-compiler

Reduce the cost of an expensive loop in bounds inference
Add some files to .gitignore
user_context is part of the target, not a generator param

(backing out the mess I made by merging the wrong commit)
Fixed warnings in test for -Werror builds