Added all gen3-6 ribbons.
Fixed bugs:
* Increased speed that the subform pops up (yay profiling!) --
TableLayoutPanel would be reconfigured on every row added; adding a lot
of rows constantly reconfigures, so disable the layout updates so that
it only procs at the end.
* Cleaned up display of the ribbons, fixed width (40x40) instead of
autosize. Now display 3 per row.
* Now display the golden "complete" ribbon for g6 memory ribbons.
g3item is raw value (gen 3 index), HeldItem returns the equivalent gen4
item.
In the future the populatefields(PK3) method will use the gen3 index
(list needs to be init first) but the display is always the helditem.
Use one enum to denote Version across all code, also identifies if data
is invalid
Move some SAV code to virtual members in abstract class
(BAK/Exportable/Footer)
Few minor bugfixes here and there (hiding Characteristic label, loading
pk6 to sav3, sav3 version detection via gamecode)