Notebook report export; inline figures + export

Adds notebook report export support for pdf, and other formats.
This required support for inlining matplotlib plots, alongside
pickling them. Unfortunately the act of displaying them makes
pickling impossible.

This is worked around by -

- using dill to handle the pickling (to avoid bound method errors)
- wiping the Agg rendered object from the figure
- removing the image cache from the axes

Together these make it possible to pass image data back across
without issue, however dill may be slower than cPickle (?).
Bugs should be reported against matplotlib on these.