Add auto magic complete (complete while typing)
Fix: skip auto magic completion when pasting

This can some times cause confusing behavior.

A paste is any text insertion of more than one character at a time …
Don't attach/detach autocomplete on change if already attached/detached
Enable auto magic complete only when typing

We only want to auto magically complete when the user is typing text,
not when text is pasted or being removed.
Don't autoInsert with auto magic completer

This caused completions to be inserted without ever being shown, if
they were the only completion for the prefix entered.
Close auto magic complete when prefix is empty

While removing text
Apply editor theme to autocomplete popup
Set default theme for autocomplete popup
Use event afterExec instead of change for live autocomplete
Improve autocomplete support for async completers
Improve autocomplete results display and filtering

Autocomplete: Display unique results when it's a snippet

Fix autocomplete popup display

Remove listener for afterExec when enableBasicAutocompletion change

Fix autocomplete detach when no results are ready from the first completer

Remove condition from detach
Clarify typing condition in live autocomplete
Remove autocomplete shadow from ambiance theme

This fixes a regression caused by the newly introduced feature allowing
autocomplete theming
Cleanup autocomplete.js

Consistently use .bind(this) instead of that = this
Fix bug and clarify async autocomplete result gathering

@SamyPesse’s “left: total - (i + 1)” was flawed because it only would
work if all completers were async
Add "enableLiveAutocomplete" option

This makes live autocomplete optional and is not tied to
“enableBasicAutocomplete” anymore

This also renames “onChangeAutocomplete” to “doLiveAutocomplete”
Revert "Remove autocomplete shadow from ambiance theme"

This reverts commit 0e256ce80d9faf66a764c52d527d38d0c9b94636.
Cancel out unwanted editor's css for autocomplete dialog
Fix minor typo in enableLiveAutocomplete
Make sure the CORS blobworker loads absolute URLs

The only situation where this is really needed, is if the workerURL is
protocol relative, since we only end up in this situation if workerurl
is on a different server to begin with.