If you don't do this, in the tests you have to do:
vm.expectRevert(bytes4(keccak256("UnsupportedQueryType()")));
Whereas with this change, you can simply import the contract and do:
vm.expectRevert(UnsupportedQueryType.selector);
By moving the structs out of the abstract contract, you can use them
directly in any contract that imports QueryResponse.sol *without*
requiring that contract to inherit from the QueryResponse contract. This
seems to work much better with forge's coverage tooling.