erlc: update {id, git} in .app.src with git describe output

AFAICT this is harmless for those who don't use it, and useful for those who want it:

- if git is not available, or git returns an error, the shell command returns true and the substitution becomes `{id, ""}`
- if `{id, git}` is not present in `.app.src` then there's nothing to substitute
- on a repo with no tags, you'll get something like `{id, "7fc0b40"}`
- for cowboy master, as an example, you'll get `{id, "2.0.0-pre.1-2-g14110e5"}`
- putting this in core seems sensible as if its in a plugin the `.app.src` file will need to be processed in 2 separate places