AHLRAP-1492 First cut of tab completion in the IPython console

Main entrance point in the ScriptConsoleViewer.  Completions flow
through to the pydev console backend.  For tab-completion, we use the
pure ipython backend.

The magic 'cd' is handled specially, though perhaps in the future, the
completions interface can be beefed up such that eclipse is aware which
part of the string ipython has used to make the completion.
Change-Id: Iccaadcea0509413c9ff5fffcee622fdc14aabcda

AHLRAP-1492 Add a preference to disable tab completion in interactive
console

Change-Id: Id4dfee66e83f3867add8a769d65fde3024ed46f8

AHLRAP-2256 Tab completion thread-safety.

Don't allow multiple tab-completions to happen concurrently.  The result
is unpredictable wrapping.

Change-Id: I7c1c36f1237537c2115fb44a0821fbf11009224e

Get tab completion working

Exclude hidden completions and strip function argument lists
Merge branch 'tab_completion' of https://github.com/ahlmss/Pydev into ahlmss-tab_completion
Fixed issue in tab-completions when handling a X:\pydev command.