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.

The isColumnHiddenByDefault stuff in WTrackTableView probably belongs here now. 

Also the setChecked() call below that depends on hasPersistedHeaderState should now just test for "isSectionHidden" -- it only does that test because WTrackTableView set up the default hidden states after WTrackTableViewHeader::setModel had been called. Oi. 


You could also remove hasPersistedHeaderState().