feat(N4): virtual scrolling for Set/Zset/List editors
- Create VirtualScrollList.vue component using @tanstack/vue-virtual
- Props: items, itemHeight, overscan, height
- Events: scrollEnd (for infinite loading)
- Slots: default (item rendering), empty
- SetEditor: replace v-for with VirtualScrollList, handles 100k+ members
- ZsetEditor: replace v-for with VirtualScrollList, preserves filter/sort
- ListEditor: replace pagination with virtual scroll + infinite loading
- Initial load 100 items, auto-loads 100 more on scrollEnd
- Shows loaded/total count + loading indicator
- HashEditor: kept as-is (HSCAN limits to 100 items, el-table handles fine)
- docs: mark N4 complete, update problem E priority to medium