(PUP-2288) Make [ be LISTSTART if first in file or preceded by WS

The problem was that there was only one special case being handled
by the lexer to dis-ambiguate if an expression followed by [ meant
the start of an access operations (e.g. getting an entry out of an
array), or if it represented the start of a literal array.

The supported special case was NAME followed by non-WS followed by [.

This meant that cases like foo(3) [a,b,c] were always treated as
an access operation. 

The fix generalizes the dis-ambiguation so that all access operations
must be written without interleaved WS.
Merge pull request #2542 from hlindberg/pup-2288_list-start-unless-ws

(PUP-2288) Make [ be liststart if first in file or preceded by WS