Reimplemented the Poppler backend

This is still wip: I don't intend to add a permanent dependency on
libpoppler without having at least a switch to turn it off.

But it neatly shows where this is going: 78 lines of code bring PDF
support, and they aren't any longer spread across the file, but one
block of code.