Compile subrule.

As well as calling subrules, this also handles named and positional
capturing. Includes part of what is needed to backtrack into subrules
also.
Implement backtracking the cursor stack.

This means backtracking over captured things works out. For example:

    say(('abc123def' ~~ /c <digit>+ (\d\w+)/).list[0].Str())
Make backtracking into subrules work.
Update ROADMAP.