Add custom library header save/restore code.

Should migrate current 1.12 installations from the old QT binary blob
to the new protobuf format.  This won't help us for users upgrading
from 1.11, but all future upgrades should be much smoother.
includes a small roundtrip test.

think of fieldIndex as the index into the column string list at which the Column enum appears

if there a ton of columns in the column list that are unknown to ColumnCache then the field index of a valid column could be larger than NUM_COLUMNS