Custom Warheads refactor and DisabledByWarhead.

Allright, so this is a big one, with a lot of code changes in the weapon and warhead code, along with their associated tie-in points.

As such, we probably need very thorough testing. I've done as many tests as I can over the course of doing this, but at some point we probably need more people chipping in on the testing effort.

I've tested all 4 mods after running the new UpgradeRules (engine version 20140720) on the mods (weapons.yaml update). So far I have only found one possible regression that I couldn't nail down. It is in D2K, but I cannot reliably reproduce it. See #2641.

This supersedes #5882.

A quick "How To" guide for making new custom warheads using this branch can be found here: http://pastebin.com/xUg2bfT5

This pull request includes some changes to the yaml (and thus balance) of RA and TD. We probably want to discard these before the pull request is finally accepted, and rerun the UpgradeRules code on a 'clean' set of yaml code for RA and TD.
Note to self: Remove "Ally", "Neutral", "Enemy". Should only be in DisablerWarhead, not in DisabledByWarhead.