fix completion: do not show instance vars in static context,

Example:
groovy:000> class Foo{public static int foo = 3; int bar = 4}
===> true
groovy:000> Foo.<tab>loop over superclasses
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>
Small fix to completion of identifiers,
not evaluating identifiers following a point

Example:
groovy:000> class Foo{public static def fooprop = 3}
===> true
groovy:000> class Bar{public static def barprop = 3}
===> true
groovy:000> bar = new Bar()
===> Bar@53624517
groovy:000> foo = new Foo()
===> Foo@3000e213
groovy:000> bar.foo.<tab>

Before: completes like foo.<tab>
After: no completions
Keyword completion.

Hooked and into Reflection Completer, may suggest keywords in places they cannot appear.

Took some care to provide most probable spacing and some opening brackets.
code format
Complete Custom Classes.

Using the loaded classes stored in the shell

Example:
groovy:000> class BarFooBaz{}
===> true
groovy:000> Bar<tab>

Before: No completion
After:  groovy:000> BarFooBaz
Refactoring of core Preferenes.java: Using constants instead of literals
display known preference keys
Autoindent for buffers, currently fixed at 2 spaces.
Enabled by setting autoindent to true in preferences.

The current buffer is lexed using the default Groovy Lexer,
which keeps track of parentheses in a stack, using the depth of that stack.

Also had to use a hack-ish solution wrapping the InputStream because JLine
does not provide an API to do autoindent.
Whole-buffer context aware completion using lexer
Completes many but no all expressions where statement before dot
across multiple lines can be evaluated without side-effects
(literals, classes, fields and collections thereof, without parentheses).