Deprecate `QParams` validation so that we can later remove it.

This is used in the oauth and mac modules. It might be better to port
those over to Directives in the same PR, as they generate a lot of
deprecation warnings. Let's discuss before merging.
Remove use of deprecated `QParams` in `mac`.

Since the error messages generated were just being thrown away, we can
instead just `flatMap` through options.
Adapt `oauth` module from QParams to Directives.
Factor out the input (header + params) processing.
Deprecate `ParamsSpec` so we won't be warned about its QParams references.

Later we'll remove the references and leave the few plain Params tests
that it has.
Preserve FilterDirective type after filtering.
Preserve type of response (e.g., JoiningResponseFunction).
Use joined directives to report multiple errors.
Replace use of QParams with parameter directives.

This is a blunt translation of QParams code to directives, it could
probably benefit from a comprehensive rewrite at some point. My aim
was to preserve the exiting behavior.

The tests pass.