Rework glyph cache to enable partial eviction.
Rework glyph cache to enable partial eviction.

The current code uses a hash table with linear probing. This means
that when the cache fills up, we have no alternative but to bin the
whole thing (or do an expensive rebuild).

Change to using a simple hash table with linked lists of bucket chains,
and additional LRU lists. This way we can ditch the oldest glyphs as
we need more space.

samturneruk/mupdf_secure_android,benoit-pierre/mupdf,hxx0215/MuPDFMirror,zeniko/mupdf,zeniko/mupdf,nqv/mupdf,lustersir/MuPDF,sebras/mupdf,poor-grad-student/mupdf,xiangxw/mupdf,wild0/opened_mupdf,loungeup/mupdf,poor-grad-student/mupdf,hxx0215/MuPDFMirror,ylixir/mupdf,loungeup/mupdf,geetakaur/NewApps,derek-watson/mupdf,wild0/opened_mupdf,geetakaur/NewApps,wild0/opened_mupdf,flipstudio/MuPDF,seagullua/MuPDF,lustersir/MuPDF,muennich/mupdf,hackqiang/mupdf,lamemate/mupdf,tribals/mupdf,michaelcadilhac/pdfannot,nqv/mupdf,muennich/mupdf,zeniko/mupdf,hackqiang/mupdf,tribals/mupdf,benoit-pierre/mupdf,FabriceSalvaire/mupdf-cmake,michaelcadilhac/pdfannot,Kalp695/mupdf,hackqiang/mupdf,fluks/mupdf-x11-bookmarks,lolo32/mupdf-mirror,tribals/mupdf,geetakaur/NewApps,derek-watson/mupdf,geetakaur/NewApps,kobolabs/mupdf,MokiMobility/muPDF,ArtifexSoftware/mupdf,ziel/mupdf,fluks/mupdf-x11-bookmarks,isavin/humblepdf,loungeup/mupdf,benoit-pierre/mupdf,asbloomf/mupdf,flipstudio/MuPDF,hackqiang/mupdf,xiangxw/mupdf,knielsen/mupdf,kobolabs/mupdf,loungeup/mupdf,lamemate/mupdf,samturneruk/mupdf_secure_android,knielsen/mupdf,MokiMobility/muPDF,TamirEvan/mupdf,hjiayz/forkmupdf,ziel/mupdf,github201407/MuPDF,hjiayz/forkmupdf,knielsen/mupdf,flipstudio/MuPDF,robamler/mupdf-nacl,sebras/mupdf,PuzzleFlow/mupdf,seagullua/MuPDF,lolo32/mupdf-mirror,hxx0215/MuPDFMirror,muennich/mupdf,github201407/MuPDF,ArtifexSoftware/mupdf,Kalp695/mupdf,benoit-pierre/mupdf,lolo32/mupdf-mirror,wild0/opened_mupdf,TamirEvan/mupdf,ccxvii/mupdf,robamler/mupdf-nacl,ArtifexSoftware/mupdf,michaelcadilhac/pdfannot,ziel/mupdf,fluks/mupdf-x11-bookmarks,kobolabs/mupdf,seagullua/MuPDF,kobolabs/mupdf,cgogolin/penandpdf,seagullua/MuPDF,TamirEvan/mupdf,xiangxw/mupdf,ziel/mupdf,PuzzleFlow/mupdf,PuzzleFlow/mupdf,robamler/mupdf-nacl,fluks/mupdf-x11-bookmarks,benoit-pierre/mupdf,lustersir/MuPDF,FabriceSalvaire/mupdf-cmake,TamirEvan/mupdf,michaelcadilhac/pdfannot,fluks/mupdf-x11-bookmarks,ylixir/mupdf,geetakaur/NewApps,lolo32/mupdf-mirror,isavin/humblepdf,benoit-pierre/mupdf,PuzzleFlow/mupdf,muennich/mupdf,zeniko/mupdf,cgogolin/penandpdf,wzhsunn/mupdf,wild0/opened_mupdf,ccxvii/mupdf,samturneruk/mupdf_secure_android,lustersir/MuPDF,hjiayz/forkmupdf,tribals/mupdf,ziel/mupdf,zeniko/mupdf,isavin/humblepdf,michaelcadilhac/pdfannot,MokiMobility/muPDF,ylixir/mupdf,derek-watson/mupdf,hxx0215/MuPDFMirror,wzhsunn/mupdf,wzhsunn/mupdf,tribals/mupdf,michaelcadilhac/pdfannot,Kalp695/mupdf,ArtifexSoftware/mupdf,muennich/mupdf,lolo32/mupdf-mirror,isavin/humblepdf,sebras/mupdf,TamirEvan/mupdf,robamler/mupdf-nacl,PuzzleFlow/mupdf,loungeup/mupdf,nqv/mupdf,muennich/mupdf,TamirEvan/mupdf,wzhsunn/mupdf,asbloomf/mupdf,ArtifexSoftware/mupdf,asbloomf/mupdf,nqv/mupdf,hjiayz/forkmupdf,ccxvii/mupdf,isavin/humblepdf,wzhsunn/mupdf,hxx0215/MuPDFMirror,lustersir/MuPDF,samturneruk/mupdf_secure_android,FabriceSalvaire/mupdf-cmake,poor-grad-student/mupdf,poor-grad-student/mupdf,hxx0215/MuPDFMirror,ccxvii/mupdf,hjiayz/forkmupdf,seagullua/MuPDF,TamirEvan/mupdf,nqv/mupdf,sebras/mupdf,wzhsunn/mupdf,lolo32/mupdf-mirror,kobolabs/mupdf,hackqiang/mupdf,PuzzleFlow/mupdf,flipstudio/MuPDF,fluks/mupdf-x11-bookmarks,nqv/mupdf,FabriceSalvaire/mupdf-cmake,github201407/MuPDF,derek-watson/mupdf,knielsen/mupdf,lamemate/mupdf,cgogolin/penandpdf,asbloomf/mupdf,Kalp695/mupdf,TamirEvan/mupdf,github201407/MuPDF,wild0/opened_mupdf,derek-watson/mupdf,Kalp695/mupdf,isavin/humblepdf,xiangxw/mupdf,xiangxw/mupdf,hjiayz/forkmupdf,robamler/mupdf-nacl,ArtifexSoftware/mupdf,ccxvii/mupdf,FabriceSalvaire/mupdf-cmake,derek-watson/mupdf,sebras/mupdf,ylixir/mupdf,seagullua/MuPDF,ArtifexSoftware/mupdf,ccxvii/mupdf,lustersir/MuPDF,PuzzleFlow/mupdf,hackqiang/mupdf,isavin/humblepdf,Kalp695/mupdf,ziel/mupdf,flipstudio/MuPDF,asbloomf/mupdf,lamemate/mupdf,poor-grad-student/mupdf,samturneruk/mupdf_secure_android,asbloomf/mupdf,ArtifexSoftware/mupdf,wild0/opened_mupdf,tribals/mupdf,poor-grad-student/mupdf,lamemate/mupdf,zeniko/mupdf,sebras/mupdf,github201407/MuPDF,cgogolin/penandpdf,xiangxw/mupdf,Kalp695/mupdf,FabriceSalvaire/mupdf-cmake,cgogolin/penandpdf,fluks/mupdf-x11-bookmarks,MokiMobility/muPDF,robamler/mupdf-nacl,lamemate/mupdf,samturneruk/mupdf_secure_android,kobolabs/mupdf,ylixir/mupdf,muennich/mupdf,ylixir/mupdf,MokiMobility/muPDF,knielsen/mupdf,cgogolin/penandpdf,loungeup/mupdf,flipstudio/MuPDF,MokiMobility/muPDF,lolo32/mupdf-mirror,github201407/MuPDF,kobolabs/mupdf,knielsen/mupdf,geetakaur/NewApps,xiangxw/mupdf