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'
Fix style
Merge pull request #4187 from pablooliveira/pr-4184

Select highlighter for cell magic languages