Inject Context into LegacyOpeners

It is better to support `@Parameter` fields in `LegacyOpeners` than to ask the openers to discover context and services themselves.

It also makes things safer because legacy openers lacking required services will no longer take precedence over legacy openers not having that problem.

This fixes #24.