Move path_variables function to where it is used
Don’t read user settings from file::path_attributes

The reason for this is mainly that the path given to path_attributes() might be a virtual path, in which case using that to obtain settings can cause problems. For example if the (virtual) path is ‘/net/some/long/path’ (rmate) then we’ll hit that path locally, but stat’ing paths under /net can take seconds.

Also, the ‘scopeAttributes’ read from the user settings isn’t technically path attributes. Though the feature this allows is that we can scope the encrypt/decrypt export/import commands to ‘attr.enable-encryption’ and then put something like this in a project’s .tm_properties:

    [ private/** ]
    scopeAttributes = "attr.enable-encryption"
Provide symmetric content/set_content for document_t
Remove path::walker_t

The intent of this class was to allow ad-hoc recursive/lazy walking of a directory structure and having links only visited once.

It was however only used once, and for that task, path::entries() is sufficient.
Forward grammar changes to text view
Move grammar changed callback from document → buffer
Clicking already selected search result reselects the match

Previously we ignored clicks and only selected matches when the selection was changed. This was done to prevent firing off two “select match” actions. We now ignore the “selection changed” notification if the current event is a mouse-up.
Fix problem with opening multiple empty files on FAT file systems

The problem is that empty files on a FAT file system all have the same inode so TextMate would consider them to be links of each other and only show the last one opened.

Fixes #979.