git: perform repository discovery and blob loading asynchronously

This discovers the repository (which requires a lot of access()) and
loading of the GgitBlob for diff generation in a thread worker.