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
Make regexp check more clear and documented
Add unicode test case
Merge pull request #419 from janisz/master

Fix autocompletion of map entries in Groovy shell