Redesign Disks section: group datasets under a shared pool header

Problem

The current Disks UI shows each dataset as an independent card with identical pool-level storage numbers (size, used, free, progress bar). In a shared ZFS pool with multiple datasets, this is misleading — it looks like each dataset has its own independent storage, when in reality they all share the same pool.

Solution

  • Add a pool header showing the true shared storage stats: total size, progress bar, used size + percentage, free percentage
  • Below the header, render each dataset as its own card with dataset-specific info: mode, clones, snapshots, size
  • When a pool has no child datasets (e.g. dblab_pool_01), suppress the redundant dataset name since the pool header already identifies it

Acceptance criteria

  • Single-pool setup shows pool header + single card without repeated name
  • Multi-dataset setup groups datasets under one pool header
  • Storage stats on pool header match actual ZFS pool usage
  • >80% disk usage warning displays correctly (only when at least one dataset is active)
  • Old fileSystem API fallback still works
  • Empty pools array doesn't render a blank section