Merge pull request #186 from tkruse/fix-groovysh-test

Groovysh Tests independent of IO
fix test so it runs on jdk 1.5
fixed typo in comment
GROOVY-6139: Redesign: Lexer-based completion
Refactor ReflectionCompletor class into several smaller completors
Uses Lexer instead of identifying the completion part via string methods
Allows whole-buffer context aware completion
Completes many but not all expressions where statement before dot can
be evaluated without expectable side-effects. Refuses to complete where
completion would require evaluation of e.g. "foo()" or "foo each"
However, it still evaluates operators, getters and "[]" expressions, which might
in some cases perform long-running operations or even have side effects.

Examples that will now complete, but did not before
"foo".
"foo".chars.

Multiline:

x = [1,
2].

y = """start
end""".