Implement battle conditions

Like weather effects in Pokémon, these are status effects that apply to
the entire battlefield and all battlers on it.  'Battle condition' is a
bit more verbose than I'd like though, need to come up with a more
succinct, catchy name for these.
Fix long-standing status stacking bug

For a long time, using the same status move twice would create an
additional status context, which also duplicated the status's effects
(highly undesirable behavior).  This is finally fixed.