Quickened Spells (ready to merge edition)

Pull had to be remade to be pull-able after I cocked things up, remind me never to premake a changelog text again

old pull with all discussion https://github.com/tgstation/-tg-station/pull/1367

---

It is now possible for wizards to use their spell book to purchase cooldown reductions for their spells. Each reduction costs a spell book charge and will be properly refunded if spells are unlearned.

The reduction will will follow a linear progression, with each rank giving as much as the one before it. The final cooldown is set via the variable cooldown_min

Each spell can be raised to use all five points these values are open to discussion:

Magic Missile: 1.5 second cooldown reduction per upgrade with a minimum 9 second cast time
Fireball: 1 second cooldown reduction per upgrade with a minimum 2 second cast time
Disintegrate: 10 second cooldown reduction per upgrade with a minimum 20 second cast time
Disable Tech: 5 second cooldown reduction per upgrade with a minimum 20 second cast time
Smoke: 2.5 second cooldown reduction per upgrade with a minimum 2 second cast time
Blind: 1.2 second cooldown reduction per upgrade with a minimum 5 second cast time
Mindswap: 10 second cooldown reduction per upgrade with a minimum 20 second cast time
Forcewall: 1.2 second cooldown reduction per upgrade with a minimum 5 second cast time
Blink: .4 second cooldown reduction per upgrade with a minimum .5 second cast time
Teleport: 10 second cooldown reduction per upgrade with a minimum 20 second cast time
Mutate: 2.5 second cooldown reduction per upgrade with a minimum 30 second cast time
Ethereal Jaunt: 5 second cooldown reduction per upgrade with a minimum 30 second cast time
Knock: 2 second cooldown reduction per upgrade with a minimum 20 second cast time
Curse of the Horsemen: 3 second cooldown reduction per upgrade with a minimum 3 second cast time
Flesh to Stone: 10 second cooldown reduction per upgrade with a minimum 20 second cast time
Summon Guns and all artifacts: not affected