Fix list listener parsing

Make it possible to define list listeners that are not at the end of a
listener group.

 Currently, a listener on a list trait 'b[]' must be the last element defined in a list
 of listeners--e.g. c = Property(depends_on=['a', 'b[]']). Putting the list
 listener first (depends_on=['b[]', 'a']) causes an exception:
 "TraitError: Expected '[]' at the end of an item at column 4 of 'b[],a'"
 This issue also makes it impossible to listen to multiple lists.