Added support for <command> element
This is a generalisation of the 'main', 'self-test' and 'compile:command' attributes.
Some side effects of this:
- You can no longer get selections if the root has no main command. Before, this was only detected when running.
- We now select the best candidate *that can be run*. Before, we selected the best candidate and then failed if it wasn't runnable.
- We only check that the main path is relative when running, not when loading (this is so that other runners can have other rules)
24 files changed: