Fixed handling of <executable-in-*> bindings outside of <requires>

These allow a program to depend on another of its own commands. e.g. the
"test" command might want to make its own "run" command available to the
tests.

Reported by Tim Cuthbertson.
Merge executable self-binding fix