Improve glob matching

1. The * and ** operators will now match a dot if not at the beginning of a path component. E.g. ‘main*’ will match ‘main.cc’.
2. When negating a glob, the * and ** operators will include dot files. E.g. ‘!cache/**’ will match (reject) ‘cache/.DS_Store’.
3. The ** operator no longer needs a trailing slash. E.g. ‘src/**.cc’ will match ‘src/main.cc’ and ‘src/sys/util.cc’.
Add glob_list_t type

This can be used to manage a list of accept/reject globs.
Don’t restore “search hidden folders” setting

This is only because of upcoming code changes. Wether or not to search hidden folders can be expressed using the glob list, so a dedicated setting is redundant.
Use glob_list_t in file browser

This changes the way the include/exclude keys work: A path now *must* be matched by an include key to actually be shown.

The default value of the global include key has been changed to include “*” but if users have edited the value, they will see few or no files in the file browser.
Add file/folder exclude keys for search and file chooser

This is just for completeness.
Update file scanner API to use glob_list_t
Update search and file chooser to new glob list
Change set-only property → method
Change property to read-only

Since it uses a const reference we can’t synthesize a setter for this.
Implement getter/setter for const& property
Enable implicit @synthesize

I haven’t removed the current use of @synthesize since that results in a build that throws exceptions and crashes.
Let cf::to_s(NULL) return NULL_STR

This was previously undefined. We also return NULL_STR when converting the CFString fails.
Set TM_APP_IDENTIFIER

This is for bundles that need to read TextMate’s preferences file (should only be those using a nib with user defaults bindings for their preferences dialog).
Add TM_CURRENT_THEME_PATH

There’s a few commands which want to read settings from the current theme. So far these have been reading the theme UUID from TextMate’s settings and scanned the disk to find the corresponding property list.

This is pretty bad because theme UUID can be set in different ways, themes can be in arbitrary bundles, and the property lists can be in delta format.

The latter is not solved, though we ensure the variable point to the base theme, incase a delta exist. TextMate could simply write a non-delta version of the theme to TMPDIR and let the variable point to that, so we’re not really limiting ourself by adding this variable.
Make all second level headings article
Use NSBox to draw gutter divider

There’s a few subtle advantages of going with a view, mostly theoretical (about minimizing refresh rectangles) but switching to constrained based layout should provide minor code simplifications, since our ancestor view won’t have to deal with the gutter divider rectangle.
Rename property: layout → layers

This is to avoid a clash with the layout method introduced in 10.7 (and used during auto layout).
Fix typo
Include SCM info in default window title

Ideally I also wanted to include project directory, but since the user’s properties are read after the default ones, and those contain the setup of projectDirectory, this isn’t possible with the current semantics.
Update project properties

Mainly just rely on default SCM window title.