Fix autocompletion of map keys

Maps can contains strings with characters that can be interpreted differently,
to prevent it, completions of such entries will be surround with double quotes (")

Escape special characters in completions
Use single quotes insted of double-quotes

Escaping dollar sign ($) is no longer needed
Move code to NavigablePropertiesCompleter
Support only Strings with printable chars

Complete will work only for keys that are Strings that could
by typed. New lines and tabs and slashes will be escapded.
Allow only strings without control characters
Fix identifier and quote only keys that must be
Fix typo
[GROOVY-6623] Interpreter mode for groovysh, with caveats
Now works:

    groovy:000> def x = 3
    ===> 3
    groovy:000> x
    Unknown property: x
    groovy:000> :set interpreterMode true
    groovy:000> def x = 3
    ===> 3
    groovy:000> x
    ===> 3

Now fails (Type/method declaration on same line as statement):

    x = 3; class Foo{}
    x = 3; def foo() {}
Make regexp check more clear and documented
GROOVY-6810: fix usage of "this" in nested AIC
Add unicode test case
Merge pull request #355 from tkruse/interpreter_mode_simple

[GROOVY-6623] Interpreter mode for groovysh, with caveats
[GROOVY-6623] Interpreter mode for groovysh, with caveats

added/updated license header
Merge pull request #419 from janisz/master

Fix autocompletion of map entries in Groovy shell
GROOVY-6612: GroovyRowResult case insensitive inconsistency
GROOVY-6612: GroovyRowResult case insensitive inconsistency (improve javadoc)
GROOVY-6817: groovy.sql.Sql#execute doesn't handle invoking SQL that returns multiple results
Merge pull request #424 from paulk-asert/groovy6817

GROOVY-6817: groovy.sql.Sql#execute doesn't handle invoking SQL that ret...
GROOVY-6808: Upgrade to ASM 5.0.3