Change IPython import order, try to import newest IPython first

When running with IPython 1.0 this is needed because
importing pydev_ipython_console_010 causes this line to run:
from IPython.frontend.prefilterfrontend import PrefilterFrontEnd
which, before failing causes a warning to be printed about
deprecated frontend module.

Also update the version printing code so that versions < 0.10 show
correct version too (follow on from b71a5b6).
Rename test_pydev_ipython to version dependent name
Rewrite of IPython wrapper to use/extend IPython's InteractiveShell

The original interface to IPython was based on IPython.testing.globalipapp,
this new version is a complete re-write, but it delivers the same
functionality.

The reason for this re-write is that further extensions to enable more
IPython features (such as magics and some hooks) is easier to do with
a subclass of InteractiveShell.

There are many todos marked in this code for items that can/should be
improved to enable better IPython integration. These will be part of
future commits.
Connect %gui magic to hookable XML-RPC via pydev_ipython.inputhook
Patch IPython so that enable_gui points back to PyDev
Patch all of IPython.lib.inputhook to redirect to pydev_ipython.inputhook
Display the IPython banner in 0.11+ version.

Also:
- remove the now redundant version display in pydev_ipython_console.
- add reference to PyDev's manual in the banner
Comment that 0.11 IPython will show a warning about readline
Add a hook for show_in_pager so that IPython does not try to use "less" or similar
Remove done todo about system_raw vs system_piped

Using system_raw (As set in TerminalInteractiveShell's __init__) seems
like the best solution.
Defer figuring out how to change PyDev's title (and if we should)
Force console to not give warning about color scheme choice and default to NoColor
Remove usable_screen_length.

usable_screen_length was only in use for some versions of IPython between
the 0.10 and 0.11 release. It was never needed in released code.
Its existence in IPython's TerminalInteractiveShell should
probably be removed.
Provide a bit of help on exit/quit until/if a more complete solution is done
Store the run commands in the IPython history

This allows commands such as %history to work, plus variables
such as _ih to operate
Whitespace changes (Ctrl-Shift-F)
Push getCompletions for IPython into version dependent files

This is ahead of refactoring how completions are done for IPython 0.11+
In IPython >= 0.11 use more of IPython's completions

Avoid recalculating the same completion matches that PyDev does better
by making a Completer that differs from the default and excludes
the duplicate matcher code.

On all completions, both PyDev and IPython are queried for results
and the results are merged, giving preference to PyDev on duplicate
results.

Creates new IToken types for IPython completions, in particular % magics
now have a star next to them.
Support %edit in IPython by adding callback into PydevConsoleCommunication
List of possible future improvements to PyDev/IPython integration