Better “project” support

In particular, remembering split layout and open buffers for a given directory would be nice.

Note: the diff here currently includes commits from `arc-reactor`; those will go away once that branch is merged.