Recursively decode the inode at `idx` into a node, descending into directories. `budget` caps the total node count so a cyclic image cannot spin the render.
(
vm: &VirtualMachine,
base: u64,
idx: u64,
name: String,
depth: usize,
fds: &std::collections::HashMap<u64, u32>,
budget: &mut usize,
)