Do not add transient pasteboard items to history

See http://nspasteboard.org for details.
Disallow creating OakPasteboardEntry outside OakPasteboard.mm

This is in preparation of adopting CoreData which will require a managed object context to create pasteboard entry objects.
Move code from OakPasteboard instance to class object

This is in preparation of making the class an NSManagedObject subclass, so we want as little code there as possible.
Ensure system clipboard is always updated
Limit explicit options stored on find clipboard

This is to get a “cleaner” history (saved on disk).
Minor OakPasteboard(Entry) interface changes
Rename NSReplacePboard → OakReplacePboard

We shouldn’t use Apple’s prefix for our own constants. The actual value of the constant hasn’t been renamed yet as this requires “migration” (renaming the key in user defaults).
Do not store captures (from regexp matches) on replace clipboard

Instead these are stored as an OakTextView property. This makes more sense since we only want to use the captures in the text view that created them.
Refactor OakPasteboard class

Remove logic from the setter methods and limit their use. This is in preparation for making the classes NSManagedObject subclasses where we prefer to use the generated accessor methods.
Avoid direct instance variable access
Call ‘atos’ via xcrun
Use CoreData for storing clipboard history

Previously this was stored in NSUserDefaults. The problem with that approach is that if large items were stored in the history, it would cause slowdowns, presumably by periodic writing the entire user defaults to disk.
Ignore caret’s “desired X” in positionForWindowUnderCaret:

For example if at column 60 on a line and moving up/down to a shorter line, we remember that column 60 is our desired column position. This would previously be used when returning a position for the caret, e.g. used with clipboard history pop-ups and bundle item disambiguation menus.
Rename project-state.db → RecentProjects.db
Ensure pending bundle index changes are saved during quit
When replaying fs-events we would not reload changed items

When we see a changed item we drop it from the cache and mark the cache as “incomplete”, indicating that the bundle index should be rebuilt, which in turn causes all known items to be fetched, and the cache will thereby reload the updated entries.

However, when replaying fs-events, we are in a “rebuild index” state and would not re-rebuild the index incase items were dropped.