Allow chains to have null effects.
Add EffectChain::replaceEffect for swapping one effect for another.
Add support for iterating the global ordering of effect IDs in EffectsManager.

The implementation is super janky as it converts the set of effect IDs to a
list, sorts them, then binary searches through it to find the next or previous
effect ID.
Add next/previous effect buttons to EffectSlot and wire them up to a helper in EffectRack.
Load an empty chain to EffectChainSlot so that users can load effects without loading a chain preset.