Expands on firemodes to include settings for the egun/adv egun,
floraray, and pulse rifle.
By default attack_self() now cycles firemodes for any gun. Updates
several projectile guns in a desperate attempt to avoid the need for an
unload ammo verb.
Makes syringe guns a type of launcher gun, and removes the hack
projectile.
Also moves syringe and dart gun source files into the modules/projectile
folder.