zink: some changes for zink_device_info
The first commit removes guard_start() and guard_end() in device info.
The second commit and third commit address the limitation of the code generator, where a condition is required to get the feature structs, even when it's unneeded (!7457 (merged) added a stopgap solution, and the code is partly reused in this MR).