Rebuild WeaponTypes to WeaponFactory and a WeaponType enum
Weapons link to their Unity GameObject and fire ammo

SemiAutoWeapon set up to fine only once per start/stop.