Adds p.break_ for explicit newlines in lib.pretty

p.break_() explicitly includes a newline while pretty printing, and maintains indentation.
A simple test is included to show this working.
Uses p.break_() when repr() is used for printing

When a newline is found in the result of repr() (using the default printer), the newline is replaced with an appropriate call to p.break_()
Merge pull request #3622 from takluyver/drop-fakemodule

Drop fakemodule

After PR #3555, I don't think we have any need for our FakeModule class, so this removes it in favour of just using ModuleType.

There shouldn't be any user-visible benefit, so we could leave this until after release if we're going into stability mode. On the other hand, it changes an (undocumented) API, so we might prefer to do this before 1.0.
Merge pull request #3851 from alexrudy/pretty-newlines

Adds an explicit newline for pretty-printing.

Included:

- ``p.break_()`` inserts a hard newline in the output, maintaining the correct indentation during pretty printing.
- When the pretty printer falls back to the object's ``__repr__`` method, newlines are converted from ``\n`` to ``p.break_()`` to maintain indentation
Select adequate highlighter for cell magic languages

Detect cells that use language extension magics such as %%R or %%bash
and call the appropriate pygmentize lexer.

Closes #4184
highlight: cell metadata to decide how to highlight foreign languages

* Remove magic language detection from highlight filter, and
  replace it by a lookup in the cell metadata.

* The highlight filter now expects a full Cell object instead
  of the Cell input.

* Modify templates so they pass a full cell object.

* Update highlight filter tests
Add HighlightMagicsPreprocessor

HighlightMagicsPreprocessor is in charge of detecting
cells that use language extensions. It tags the cell
metadata with the language used.

Enable HighlightMagicsPreprocessor by default on
latex and html exporters.
Fix eafc8cb070: highlight tests should now pass a cell object
HighlightMagics: merge default languages with the user config languages

* When configuring HighlightMagics, instead of replacing fully the
  language dict by the user provided one, we merge both.
HighlightMagics: Add new default languages
highlight filter: pass metadata as an optional argument
highlight: Swap metadata and language keyword arguments
HighlightMagics: Remove unnecessary config=false
HighlightMagics: Remove assert and fix typo
Enable HighlightMagics in slides exporter
highlight: remove obsolete 'import'
update -dev docs to reflect latest stable version

also updated the release codename, so it doesn't stay with the old "An
Afternoon Hack" one.

After this is merged, it'd be good to build the docs and push them to
http://ipython.org/ipython-doc/dev/ - and I don't believe I have the
permission to do that, but @minrk and @takluyver probably do.
Merge pull request #4219 from takluyver/drop-argparse

Drop bundled argparse
Merge pull request #4228 from ivanov/doc-touchup

update -dev docs to reflect latest stable version
Fix style