Per-turret disable/enable/burst mode

Similar to individual engine selection, except for turrets.

Each turret can be enabled, disabled or in burst mode. Burst mode isn't offered for turrets with no burst capability. When selecting turrets, screen will center on highlighted turret's location with an 'X' denoting its position.

Adds a new int to amount/direction/open union (turrets didn't use this union before, right?). Currently uses only values 0, 1 and 2 for disabled, enabled and burst.

By default all newly installed turrets are disabled.
Have you tested this with a gun that has the FIRE_100 flag (and is not a flamethrower which would use the other branch)? `player::fire_gun` already removes 100 charges from the item in that case, and that is what remains in `charges_left`. `fire_turret_internal` is called with way to few ammo (charges starts with 1 for non-burst or burst value). So even if the gun has FIRE_100, it only gets 1 charge to use.

"Luckily" `fire_gun` does not care, but it still reduces the items charges by 100, therefor the "remaining" are -99. As you make sure at the end of `fire_turret_internal` that the remaining charge are at least 0 (why actually? there should be no need for it, just forward the number), the code in `fire_turret` thinks all charges have been consumed.

This happens even when the burst is stopped early:

Try a M249 with FIRE_1000 and a boomer or bobcat (it will die from the first few rounds) one tile away and burst set to 10, the turret fires and consumes 1000 charges! Note that each bullet makes a sound which is shown in the message log. So a full 30 round burst should have 30 sound messages.

I suggest you let the firing code handle those flags (and ignore them here) and only use the charges of the gun item directly (without clipping it, let negative values through, only the difference between before and after firing matters).

The same problem exists probably in the other branch using fuel.