In Generators, user_context should controlled by 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.