draw_device; device state stack handling fixes.
draw_device; device state stack handling fixes.

Only create a shape if we need to.

Correctly cleanup, thus avoiding a double free of mask later on.

Thanks to Zeniko for spotting these.

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