When a tag with a cycle effect is removed, other pads were left
frozen in whatever color the cycle left them at. Now:
- Pads with active tags get their lighting theme re-applied
- Pads with no tags get turned off properly
- apply_tag_color() now uses reader.apply_effect() with speed param
- on_tag_remove() properly stops cycle effect before turning off pad
- Updated help text to document "cycle" effect option
- Works with tag_colors.json: set "effect": "cycle" for revolving lights
- Changed apply_tag_color() to accept pad parameter
- LED effects now apply to tag.pad instead of Pad.ALL
- Tag removal only turns off the specific pad, not all pads
- Added active_pads tracking dictionary
- Added speed parameter support from tag_colors.json
- Tag detection turns ALL LEDs off immediately
- Server success shows CENTER blue blink (150ms)
- Theme effects (pulse/flash/solid) apply to ALL pads
- External tag_colors.json for customizable per-tag themes
- Debounce logic preserves theme effect even when skipping server