improve pickRule

implicitRules are categolized by
 implicitRules  - for pattern=%  no prefix,suffix.
 iprefixRules   - for pattern=<prefix>%  may be with suffix.
 isuffixRules   - for pattern=%<suffix>  no prefix.

implicitRules are always checked with canPickImplicitRule.
iprefixRules is sorted by output pattern prefix, and only checked
for the prefix matched rules.
isuffixRules is sorted by output pattern suffix (reverse string),
and only checked for the suffix matched rules.
2 files changed