change default behavior of database task storage

The previous default behavior was to create a new table (sqlite) / database (mongodb) for each Hub instance,
so that task history would not be shared by subsequent IPython sessions.

I don't think this was the right choice,
so this PR switches the default behavior to use the table / database `ipython-tasks`.
The result is that all Hub sessions in a given profile will share history by default,
which makes the benefit of the db backends clearer.

Configurable behavior remains the same, only the default is changed.
quote table name

avoids syntax errors from hyphens
enable cython highlight in notebook
remove executable flag on soem files
Split exporter in to for ipynb->ipynb
some trailing whitespace
import baseexporter in init
Exporter -> TemplateExporter / BaseExporter
fix 1 test
renamed:    exporter.py -> template_exporter.py
renamed:    baseexporter.py -> exporter.py
renamed:    template_exporter.py -> templateexporter.py
Rebase changes made by hand
Check if class is an instance of Exporter, not TemplateExporter
Fixed Travis, missing import in export.py
@MinRK fix suggestions
renamed:    test_exporter.py -> test_templateexporter.py
Added tests for nb2nb Exporter
Also fixed some small things in template exporter tests.
Updated docstring for core.display.Image to make clear that the image is not necessarily displayed on creation.
Merge pull request #4175 from jdfreder/exporterbase

add base Exporter class above TemplateExporter