import FigureCanvasAgg at the top.

the AGG backend of mpl should always be available thus
it doesn't hurt to import it at the top of the module.

We use the agg canvas as a 'fall-back' canvas to prepare the figure
for the crawler -- in case the figure has no assigned canvas yet.

(It may actually make sense to *always* use the agg backend,
b/c the rendered image is discarded anyway and the agg backend is much
faster than those with an X11 connection)