Add helpers to create lines

With this we can create either a horizontal or vertical line, and don’t need to manually set a constraint for its width/height.
Use horizontal/vertical line creators
Add method to move focus to document or file browser
Add Navigate → Move Focus menu item

This has ⌥⌘⇥ as shortcut so should make it easier moving to file browser and back.
Fix “Go to Favorites” (wrong URL used)

The URL constant for the favorites location was setup using oak::application_support() but done before the app support folder was initialized (due to the setup function being marked as a constructor).
Add method for searching file browser folder
Fix missing open / modified status in file chooser

This only worked for untitled files since we no longer keep document UUIDs for documents with a path.
Use divider lines in root view

Previously we placed the views with a one point gap between them and had the superview fill the background. This works fine, but has the somewhat theoretical disadvantage that the superview then needs to implement drawRect: and for performance reasons declare that it is “opaque” which means subviews can’t use the (true) window background, should they want to.

Also add a preferences key for “tabs above document” (issue issue #214), but not hooked up in this commit.
Tab bar above document option

This change adds new option for showing tab bar only above document, so the
file browser header lines up with tab bar.

File browser header height reduced by 1 pixel to match tab bar height. It also
draws optional top divider when in same line as tab bar
Initial divider colors were wrong for inactive windows
Add bug tracking ID annotation
fixup! Improve scroll when selecting units
Improve autoscroll when drag-selecting outside viewport

When user drag-selects and moves mouse outside the viewport, we do not want to use ‘ensureSelectionIsInVisibleArea:’ because that method looks only on the selection, particularly the non-anchored end-point (and works differently for unanchored selections). Instead we want to scroll the point corresponding to the mouse position inside the viewport.

Fixes #475.
Replace live search xib with code
Use last string when bringing up incremental search

Closes #631.
Use “standard” divider above incremental search
Add OakGradientView

This simply draws a gradient background but supports alternate colors for when the window is inactive.
Use subset matching for extension in file chooser’s filter string

This allows ‘.js’ to match ‘foo.js.erb’. Special care is taken so that ‘.m’ doesn’t match ‘.md’, etc.

Closes #722.
Fix coding style
File browser: Keep item selected after delete

The ideal behavior would account for “nesting”, i.e. we should prefer to select an item from the same folder which we deleted from. Though Finder uses a similarly “naive” selection preservation algorithm.

Closes #717.