code completion sample
remove cache directory
_EditSessionProxy : add named optional `listen` to the ctor that defauls to `true`

Allows us to avoid listener creation / attachment for short-lived
proxies such as those passed to a code completer call
js/README : tweak
add `LanguageTools` interface to provide a Dart type to the module loaded by a call to `require("ace/ext/language_tools")`
add `_jsCompletion` helper function

for consistency
language_tools : make `CodeCompleter` a class

align with other similar parts of the library; provides more control
over proxy lifecycle / disposal
require_test : update `testRequireLanguageTools` to expect an instance of `LanguageTools`
language_tools : small code formatting
CodeCompleter : the `position` argument to `getCompletions` is a `Point` (not an int)
add `ace.test.language_tools` w/ a basic test case
editor_test : keep a reference to the container div

removing all the calls to `querySelector` hopefully makes the setup a
bit more clear
example/autocomplete : update to include a call to `addCompleter`
LanguageTools : add some dartdoc
rename `CodeCompleter` -> `AutoCompleter`

Since this feature is always referred to as `autocompletion` in ace.js I
think this name works better.  `Completer` is out of question because of
the conflicts with dart:async
examples : remove the `introp.js` script

this is deprecated / removed in the browser package
example/autocomplete : use `meta` in the example completion
Completion : remove `name` and add optional `snippet`

`score` is also optional.
As far as I can tell `name` is only provided by the `text_completer` and
never used by the core; the core uses `value` and `snippet` and also
supports a `caption`, but all cases can be covered by `value` and
`snippet` without using caption so I am leaving it out.
_AutoCompleterReverseProxy : type annotate the results list
language_tools_test : add verification of the `position` and `prefix`