fix completion vulnerability to corner case

Example:
groovy:000> foo(.baz<tab>
complete variable names and such inline even if dot precedes expression

example
groovy:000> xyz = 3
===> 3
groovy:000> System.out.println(x<tab>

Before: No completion
After: completes xyz
Prettier format of arrays, showing empty arrays as "[]", and adding class

Example:
groovy:000> Object.fields
===> [] (class java.lang.reflect.Field)
code style
also get superclasses fields and methods
fix completion: do not show instance vars in static context,
and properly hide invalid member names

Example:
groovy:000> class Foo{public static int foo = 3; int bar = 4}
===> true
groovy:000> Foo.<tab>
extend completion: for method closures defined in the shell, add brackets

Example:
groovy:000> def boolean foo(String name, prefix) {return name == prefix}
===> true
groovy:000> fo<tab>
Define Logger