GROOVY-4943: Allow enableAutoDownload to be set when using @Grab
GROOVY-6125 GPathResult .parent() navigation
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""".
add 'doc' command for groovysh
Merge pull request #171 from andresteingress/GROOVY-4943

GROOVY-4943: Allow enableAutoDownload to be set when using @Grab
Incorporated review comments from Andre Steingress
fix build on windows
GROOVY-6150: small tweaks, new tests
fix a test fail, clean code a bit
do not depend on a version of Java SE
Merge pull request #176 from eddelplus/master

GROOVY-6125 Fix/enhancement for GPathResult .parent()
fix build on windows
minor refactor
temp change to debug error on CI server
temp change to debug error on CI server
test IO class
better test output
using execute in test to be more robust
Merge pull request #183 from tkruse/fix-groovysh-test

Fix groovysh test
fix classCastEception in test