Assorted bug fixes

1) Attempting to account for more cursor prep cases in the parser.
2) Variables that are class instances (either extension classes or
native system classes, like strings or arrays) are now being included in
intellisense completion for function call contexts.
3) Doing better file/program tracking in the code window manager, so
that if all files of a program (we consider all files of a program to be
the files in that directory) are closed, then the program's analysis is
removed from the cache.