Adds a fancy fade-out for smokes

Originally from Bay.
Made by Loganbacca, ported by me.
Merge remote-tracking branch 'upstream/master' into smoke_fade
Fixes bad indent
Checking for divide by zero
Handle alpha 0
Merge pull request #3547 from VistaPOWA/smoke_fade

Adds a fancy fade-out for smoke effects!