Make pdftables backend-agnostic
Add __len__ to PDFDocument abc and introduce skeletal poppler backend