Item flag to counter hypo/syringegun/parapen. Gun cleanup/bugfixes.

* Added the THICKMATERIAL flag. It is used for thick coverall suits (space suits, firesuits, etc) and it will stop injections from syringes, hypos and parapens. It is also used for head items such as biohoods and space helmets. If you aim for the head, it will check if you can inject through the head equipped item, if you aim anywhere else it will check the external suit.

Let me know if I missed an item or if you don't think an item should have the flag.

* Cleaned up a bit of the gun code.
* Fixed an issue with shotgun darts not working in barrel shotguns.
* Made the on_hit() have a zone, will be used for syringe guns in another PR.
* Removed the unused sleepy pen.
* Changed /obj/item/weapon/gun/projectile/shotgun/pump/sc_pump to /obj/item/weapon/gun/projectile/shotgun/sc_pump, there was no /pump/ anywhere else.
* Shotgun darts will follow the new flag.
* Shotgun darts are now open containers, and I removed the snowflake check for them in syringes.
* Added logging for reagents in any projectile.

Update 2

* The pen/hypo/borghypo doesn't give a poke message when it fails to inject someone wearing protective gear.
* Fixed a typo.
* Reworded the can_inject() error message for humans so it makes sense with a normal pen.
* Made the combat hypo (nuke ops item) ignore protective gear, to allow syndies to heal their comrades.

Update 3

* Removed ONESIZEFITSALL.
* Changed the THICKMATERIAL flag so it did not conflict with HEADCOVERSMOUTH.