Added an optional argument 'single' to attach_list
Added an optional argument 'single' to attach_list

Using `@attach_list('list', 'item', epsilon=True)` will result in
the following productions:

    list : list item
    list : item
    list : /* empty */

Adding `single=False` will make it:

    list : list item
    list : /* empty */

mtomwing/purplex