Minimal changes to import IPython from IronPython
Merge remote-tracking branch 'upstream/master'
Summary of changes:

1) IPython/core/compilerop.py: IronPython __future__ flags are non-standard,
Solution try/except; comment added

2) IPython/core/completer.py: __main__ was undefined, due to local mistake in
creating IronPython scope; removed this tweak

3) IPython/core/prompts.py: os.getuid() is not defined (IronPython bug; see:
https://mail.python.org/pipermail/ironpython-users/2014-February/016812.html)

4) IPython/lib/inputhook.py: ctypes SystemError; comment added

5) IPython/utils/process.py and IPython/utils/_process_cli.py: adds a
new _process_cli.py which would handle the processes under cli;
fixed os.pathsep

6) IPython/utils/io.py: devnull opened in append mode; changed to "w"

7) New issue: IPython/external/decorator/_decorator.py: IronPython doesn't
have _getframes, unless FullFrames is set to true; comment added
flush replies when entering an eventloop

avoids possible hangs when the GUI eventloop prevents queued replies from being sent
Merge remote-tracking branch 'upstream/master'
Removed another of the tweaks, and added a note in  that it is largely untested.
Merge remote-tracking branch 'upstream/master'
Added doc-string comment regarding reason for patch, and details on try/catch change.
Typo in comment fixed
Merge pull request #5055 from dsblank/master

Minimal changes to import IPython from IronPython
Merge pull request #5077 from minrk/qt-hmm

Flush replies when entering an eventloop. This avoids possible hangs when the GUI eventloop prevents queued replies from being sent.

Closes #4997.
NotebookManager API: rename *notebook_model methods to *notebook
Add method notebook_exists to NotebookManager.

It is called by IPython.html.notebook.NotebookHandler.get,
so it must be implemented by every notebook handler.
Move method increment_filename from FileNotebookManager to NotebookManager

The implementation requires only a minor change (call notebook_exists
rather than checking for file existence) to be universally usable
in other notebook managers.
Rearrange the NotebookManager methods for clarity

Methods are organized into three categories:
 - Methods that must be implemented in subclasses
 - Methods that have default implementations, but can
   be overridden if required.
 - Support methods meant to be called by methods in subclasses