Added helper for file-backed value maintenance.
Added "hint path" mechanism to workspaces.

When a new editor is being created to display a file, the hint paths for all
known workspaces are consulted. Any workspaces whose hint path are a prefix of
the to-be-opened path are considered a match. The most recently used matching
workspace is then used for the new editor.

The project services will use this to add project roots as hint paths to the
workspaces that contain them, so that if you start Scaled (or open a new editor
on a new virtual desktop) with a file from a project, the appropriate workspace
will automatically be opened.

I also eliminated the "track last workspace used on a given desktop" because
that turned out to be not what I wanted more often than not. If I am editing a
file that's not part of an existing workspace then I just want the default
workspace open so that I'm not in some weird context.

I suppose it could still be useful if Scaled is opened with no file arguments,
but I never do that. So too bad.