Keyed archiving preserves view hierarchies created in code. Decoded views
retain their content, subviews and state, and each view class is verified
against its own description before archiving.
* CPAccordionView: Add CPCoding to CPAccordionView and CPAccordionViewItem.
* CPBox:
* Encode the content, title and box views unconditionally.
* Clear the superviews of the box and title views during decoding.
* CPButton: Initialize the value to CPOffState.
* CPMapTable: Add CPCoding.
* CPPopUpButton: Clear the inherited button value.
* CPSearchField: Update the cancel button when the object value changes.
* CPSplitView: Return nil from dividerColor when the theme defines no divider
image.
* CPStepper: Discard the decoded buttons before recreating them.
* CPTabView:
* Encode the current tab view items.
* Exclude the tabs from the encoded subviews.
* CPTokenField:
* Discard the decoded scroll view before recreating it.
* Add the decoded tokens to the new document view.
* CPVisualEffectView: Resolve the backdrop filter property only when a DOM is
available.
* CPBoxTest: Verify preservation of the content view, hierarchy and title, and
decoding of an untitled box without warnings.
* CPButtonTest: Verify the initial value of a button.
* CPMapTableTest: Verify preservation of entries through archiving.
* DropInArchiveFixtures: Add populated view fixtures, tree comparison, and
round trip and saved archive helpers.
* DropInArchiveGenerator: Save cib descriptions and view archives, and write no
archive data if any view fails its round trip.
* DropInArchiveTest: Verify new archives, saved archives and reference cibs, and
treat decoding warnings as failures.
* DropInSnapshot:
* Describe the view hierarchy through private views, with state and content.
* Add DropInWithFixedScrollerStyle.
* DropInArchives, DropInCibs: Add saved view archives, cib descriptions and
reference cibs.