AHLRAP-1430 Buffering problem in PyDev

This substantial change rewrites a considerable amount of code to
provide an asynchronous stream for the ScriptConsoleDocumentListener to
listen to as events rather than some ad hoc event loop distributed
between several files.

This is done by providing a few new interfaces and implementations for
asynchronous stream reading and monitoring. To wit: StreamReader<..>
will listen to the Streams from stdout and stderr and add them to a
BlockingQueue. IStreamMonitor (concretely ThreadedStreamMonitor) will
listen to the same BlockingQueue and notify listeners of the new stream
inputs. Finally, the ScriptConsoleDocumentListener is not an
IStreamListener and implements the onStream message and this will add
the text to the console after some judicious prompt manipulation.

I've demonstrated this code to James, Den, and Ed and shown how it
works.

TODO: cleanup old code which I left in as stubs to remind me where the
old code was pulling stdout and stderr in case this gave me some clues
on how to tweak some corner cases. I didn't appear to need them so I can
remove some of that code and perhaps rejig the aforementioned
distributed event loop to be much cleaner.

TODO: Rewrite the addToConsoleView function so it can insert
asynchronous text above the prompt rather than erasing the prompt and
replacing it.

Change-Id: I49063e5e502ab92a87fe9edf928261b583a9e12b

AHLRAP-999 Performance there really is no need to spawn a new OS thread
for every line sent to the console.

Change-Id: Ied50122a7600b359f7bef5ee4dc7f32669810457

Collect console output for display if hello fails

Only start the stream monitor once we have a listener - means that we
don't lose any output and simplifies the error case

Change-Id: I945d6df0456591423021f8c49c08a6e5b248a10f
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
AHLRAP-1232 - Allow sending ctrl-C (SIGINT) to running Python process

New interrupt button on the console which sends a SIGINT (ctrl-C) signal
to the Python shell allowing interrupting of long-running python
tasks.

Change-Id: I353e526fc97407d0558bda72d968f27378266e0b

AHLRAP-2127 PyDev console appears to get stuck on "..." input
continuation prompt

Make the Yellow-button clear any accumulated console input, and send a
new-line to show the user that something has happened.

Change-Id: I84d254232216a9c86ade594ca2cd6b66eb1f2070

Fix interrupt icon

Discard current command line contents on interrupt

Make interrupt code cross-platform compatible

Fix access to shell object

ensure main thread is traced
Make IPython console more like a real IPython and friendlier for doctests
Report IPython version to stderr
AHLRAP-1421 Ensure that the pydevconsole subprocess dies when the parent
eclipse does.

Change-Id: I2a580b3fcf7259795650e493afe8fd0fb9ed0b27

fix imports for exit on parent death
AHLRAP-999 Fix readline warning in pydev ipython

Change-Id: I53f46cca4a21dde83971b5e7c8dcf002697c0719
Set terminal to 'dumb' - this fixes terminal paging in Ipython 0.11
Limit the size of the pycompletionserver Java memory heap, by overriding
JAVA_TOOL_OPTIONS if it's set

Change-Id: Id3286535d8143a2fcfc99f5c3c992a6ce53857a0
Build under Eclipse 3.x (strip out 4.x code)

build against eclipse 3

build against eclipse 3
Conditionally initialise ahl logging framework
AHLRAP-1070 Generated project pom.xml

mvn org.eclipse.tycho:tycho-pomgenerator-plugin:0.14.0:generate-poms -DgroupId=org.python.pydev

AHLRAP-1070 More changes for maven build

- Move the parent POM to the top-level
- Bump the version numbers so they reflect reality: 2.2.4
- Generate the p2 repository as output in: org.python.pydev.build

Add maven bits to the build output plugin

Change-Id: I74f846dc9d95e572b75d3ec4d1dde156ff4c952e

Ignore the target directories, and the *.jar derived files built by maven.

After a "mvn clean install", now, git status should be empty.

Change-Id: Ic6abdd8837bb6b5a128fbfca8b55b6e78f631ec7

don't need these poms

backout change to build system

we don't need to run repo2runnable in our build system
Suppress code reload warning - triggers on tests/ files