Dont expand1 rules with multiple children

First adds a testcase to verify that expand1 rules aren't expanded if (after expansion) they have multiple children, then fixes the implementation to satisfy that requirement.

@erezsh I'm purposefully not merging this into master myself because this alters the produced AST and might be considered an API incompatibility as a result.

I.e. given this grammar:

    start: list ;
    ?list: item+ ;
    item : A ;
    A: 'a' ;

and an input string of `aa`, the resulting tree would look like this before this commit set:

    start
      item  a
      item  a

while with these commits it would look like this (which I believe it *should* be, but is an API change nonetheless):

    start
      list
        item        a
        item        a

Also note that both before and after this change the input string `a` produces this AST:

    start
      item  a