New PDFBiViewer as a subclass of BiViewer

Refactored to reduce code duplication.
Can use this instead of pdf_biviewer.py now.
previous code:
    import pdf_biviewer
    bv = pdf_biviewer.BiViewer()
should be replaced by
    import biviewer
    bv = biviewer.PDFBiViewer()

Then the PDFBiViewer will function exactly as before

Filter mode removed from biviewer since unnecessary, and bilearn.py
updated so is no longer needed.