generate_packets.py: move field flag data to separate class
Note: With caching, for the current packets.def, only three FieldFlags objects are actually created (for the 1180 field lines, and the 1215 fields defined through them) – one empty, one key and one diff.
Part of #43927. Introduce a new FieldFlags class to hold data for field flags (which is shared between, at minimum, fields defined on the same line) and move flag parsing code there.