Models & Storage layer for category feature (Issue #85):
- Add Category dataclass to core/models.py
- id (slug): lowercase alphabetic only
- name: display name
- created_at: Unix timestamp
- deleted_at: soft delete timestamp (None if active)
- Add category_ids field to Bounty dataclass
- list[str] for multiple categories per bounty
- Default empty list for backward compatibility
- Add categories field to RoomData dataclass
- list[Category] for room-level categories
- Default empty list
- Update JsonFileRoomStorage to serialize/deserialize:
- Category fields (id, name, created_at, deleted_at)
- Bounty.category_ids
- RoomData.categories
Backward compatible: existing data without categories works fine.