output: Make groups contain their subitems, and get rid of spv_item.
Until now, the output subsystem has had two different ideas for output items: struct output_item, which is the primary representation, and struct spv_item, which represents an output item read from an .spv file. The biggest difference, until now, has been that spv_item contains its children, whereas output_item bracketed children inside open/close pairs. This commit unifies them under output_item, making output_item adopt the container abstraction.