Web IDE create `git` Vue component

Description

Following the design comment and the POC, let's create a well-tested git Vue component (originally drafted as a Vuex submodule) that watches for file changes (based on a prop) and recalculates the git diff of the Web IDE (by emitting an event).

A lot of this is already implemented in the POC. The POC does not implement detecting renames. There's some write-ups on the git implementation for this. Maybe we can handle that here or in a follow-up?

Edited by Paul Slaughter