Implement Cocoa zoom API on CPWindow and enable zoom button for resizable windows. Zoom window on double-click where drag moves it.
* CPWindow.j:
- Add zoom:, performZoom: and isZoomed, toggling between standard frame and user frame; treat frame within 4 points of standard frame as zoomed.
- Add windowWillUseStandardFrame:defaultFrame: and windowShouldZoom:toFrame: to CPWindowDelegate; consult window subclass when delegate lacks them.
- Take default frame from platform window's usable content frame; keep standard frame within minimum and maximum sizes and usable area.
- Enable performZoom: and zoom: menu items only when window can zoom.
* _CPStandardWindowView.j: Enable zoom button for resizable windows and target window's zoom:.
* _CPWindowView.j: Call performZoom: on double-click where drag moves window.
* CPWindowTest.j: Add tests for zoom toggling, default frame, delegate refusal, maximum size, missing user frame, window subclass standard frame, performZoom: on fixed-size window, menu validation and title bar double-click.
* DropInCompatibilityTest.j: Add test for zoom button enabled only for resizable windows.
Remove incomplete host-platform OS behaviour API and its platform-specific conditionals. Derive window buttons, title, and title bar layout from window view's own theme, and select platform variants through a private function.
* CPApplication.j: Remove setOSBehavior:, OSBehavior, shouldMimicWindows and the simulatesWindows accessors, with the Info.plist keys and user default they read; set the default theme through _CPThemeVariant.
* CPApplication_Constants.j: Remove the OS behaviour constants, dictionary and notification.
* CPCompatibility.j: Add _CPBrowserOperatingSystem, returning the detected host operating system.
* CPTheme.j: Remove CPThemeStateWindowsPlatform; add _CPThemeVariant, returning the base theme.
* CPWindow.j: Remove the _close call to the window view.
* _CPStandardWindowView.j:
- Remove the OS behaviour observer, _close and _osBehaviorDidChange:.
- Place the buttons and title from theme values on every layout, with fixed defaults where a theme supplies none.
- Read title bar and sheet values from the window view's theme instead of the default theme.
* _CPTitleableWindowView.j: Read title-margin at layout time instead of caching it.
Adds targeted test infrastructure and validation checks to protect table drawing hooks and drop-in framework contracts against unintended modifications.
* CPTableViewDrawingTest: Verifies subclass invocation order for drawing steps and ensures application-specified background colors persist across theme-state changes.
* DropInCompatibilityTest: Validates default theme names, window control configurations, pop-up button bezel styles, and table class defaults.
* DropInSnapshot: Encapsulates theme attribute defaults, public API surface, default view construction, and window controls as structured data.
* DropInBaselineGenerator: Provides tooling to capture current framework state as a baseline.
* DropInBaselineTest: Compares framework artifacts against the established baseline, permitting additions while reporting modifications and removals.
* DropInBaseline.json: Introduces the initial compatibility baseline artifact.