When a rule placeholder constructed and immediately consumed it cannot be used recursively, that's why the rule definition injection into a parser context can be skipped.
This optimization has a huge impact on compile times because immediate rules are commonly used to cast an attribute like `as`/`attr_cast` does in Qi.
- there are only 2 variations now f() and f(ctx)
- added _attr(ctx) accessor for accessing the attribute
- added _where(ctx) accessor for accessing the iterator range
this, and in preparation for a unified call interface for actions as well as lazy args to e.g. eps(f)