Improve CI textures
Currently color index textures are virtually impossible to modify since afaik there isn't any easy way to generate a palette for these. To solve this I had the idea of making zapd generate a palette on its own for any indexed texture with the .ci4 or .ci8 extension, so users could them just #include a .ci4.tlut for example that zapd would generate from the .ci4 png, removing the need for users to manually create a palette (or even know how palettes work at all). Another important thing is that zapd, hopefully with libpng should be able to convert a normal png into an indexed png in case the png is not already set up that way, although it should not have to actually make the png be 16 colors etc since that should be up to the user imo. I also think that zapd should be able to extract pngs in this way, and detect if a palette is not being shared with another texture, and just include the palette from the png itself.