Ports overhauled chemsmoke from Bay.

- Complete rewrite of the chemsmoke spawning code (everything that
happens after the reaction to create the smoke).
- Moved it into it's own file since it's a little longer than the old
one code-wise.
- Tweaked the smoke sprites; gave chemsmoke directions for more
randomization, and tweaked the timing of their animations so they are
smooth now.

Most of the code is documented, so you should be able to follow what's
going on just reading through it. In short though:
- Chemsmoke now affects a circular area with a variable range depending
on the total amount of chemsmoke created (no more 1-of-each-ingredient
smoke grenades - sorry).
- The carried reagent volume in my butt balances itself according to
how big the affected area is (larger area, less carried reagent per
turf).
- The carried reagent has more volume the closer you are to the centre
of my butt.
- The visual smoke effect scales with how big the affected area is.

Originally made by Loganbacca of Baystation12.
Bugfixes included.