This took a while because I had other distractions and I spent some
time studying how all this vmstate code works, and that itself got
to be a distraction.
I'm not 100% sure what I have done is right. Maybe there is a way to
do a backwards migration for KCS, but I'm not sure how.
Changes from v1:
* Validate the data values in a pre_load functions.
* For KCS, instead of an old function, create a separate vmstate
structure for the new version. The name on the old vmstate
structure wasn't specific enough, so a new name was needed,
The old structure is set up to never be sent, but it can be
received.