input: rearrange command parsing

This simplifies some things as preparation for the next commits.
input: require space before '#' comments

So e.g.

    show_text abc#def

will now print "abc#def" instead of "#def". It's simpler, more
consistent with how ";" and other things are handled, and also
possibly avoids bothering the user with extra escaping.
command: change the syntax and semantics of the "run" command

See the changes in input.rst for explanations.

Technically speaking, this also gets rid of some undefined behavior:
passing NULL as a vararg (execl()) is always a bug.
command: add a cycle_values input command