Projectile gun feeding rework

This is a major overhaul to the functionality of guns that use bullets - shotguns, automatics, pistols, and revolvers. 

-Magazine fed weapons can now have their magazines removed by attack_self, though one will stay in the chamber. New sprites for magazines and guns have been included to accommodate this change.
-Revolvers (and the double-barreled shotgun) feed from a cylinder, do not automatically eject shells, and must be emptied by attack_self. Casings and shells with and without ammunition are now more obviously different. Revolvers tell you how many of the rounds loaded into them are live when examined.
-Shotguns are basically the same, except they start with a shell chambered. They also indicate if they have a shell chambered when examined.
-Other associated changes (R&D can print SMG magazines, summon-guns and syndicate uplinks are updated to the new tree, etc.)

This pull request is my first, and consequently it's horribly messy.