Refine handling of changed menu items.

Add (currently unused) code to handle a history menu item being
replaced. This would be called if a history menu item representing a
day is swapped out, and not if it’s mutated nor if its submenu or any
menu item of that submenu are mutated or removed/added/replaced.
Update a teardown method call.

Change the unlinking of a KVO connection to use the updated API, which
restores a point of uniqueness in considering which connection to break.
Call-out web-revisit menu items for Today.

Add a class that takes an array of menu items and splits it into two
array mirrors, with the first one given a maximum length (controlled by
a new user preference) and the second one given the remaining items.
Add a public instance to the application delegate, which keeps the new
instance pointed at the per-day web-history sub-menu for Today (or Nil
if no visited days qualify), even as the list of visited days changes
or the app is open when a day transitions.

Add dynamically created menu items for the new class’s first array,
representing the latest visited sites of Today. Add dynamically created
menu items for the second array in a sub-menu of a new menu item
representing sites visited Earlier Today. Use Bindings to have the
Earlier Today menu item automatically hide itself whenever it would
have no sub-menu items. Modify the per-day web-history menu items with
Bindings so the one (if any) that is the focus of the Today-based
history class hides itself.
Move default Defaults values to a resource file.

Create a property-list file with the default values for the user
preferences. Change the application delegate to use that resource file
as the source of its initial preference values. Remove the old global
variables with those values.

Improve the comments for those preferences’ key strings.
Enable full-screen mode for browser windows.
Enable sudden termination.

Set up automatic saving of the web-history store a minute after a
change. (More changes within that delay period do not trigger more save
requests.) Since web-history changes are the only changes persistent
across runs of the main run loop, for now, allow sudden termination
when the web-history doesn’t have outstanding changes.
Move Defaults management to a new class.

Create a new class that transfers data from the user defaults store and
presents properties for each user and private preference. Remove that
functionality from the application delegate. Use a private instance of
the new class in the application delegate and each browser window
controller to access the preferences.

Remove browser window controller private property pointing to the
application delegate, since the above changes make it mostly
unnecessary.
Add an actual shared Defaults-controller instance.