Add new SCM API

This won’t perform any disk access on main thread. The previous API would check for the SCM-metadata directories on the main thread and also obtain the initial status and branch during creation.
SCM API: Update file chooser
SCM API: Update SCM data source
Limit disk access done by DocumentController
Remove SCM variables from document_t
Remove SCM variables from file::variables
Add (async) scope attribute collecting to DocumentController

This is for attr.project.XXX and attr.scm.XXX, although the latter is also provided by scm::info_t.

With this commit, the file::path_attributes function no longer collect this information.