Optionally use git to keep brew etc versioned.

Still in alpha state.
Handles defaults and merging changes with new versions.
Enable by setting the HOMEBREW_GIT_ETC environment variable.

Closes #15751.
Closes #17713.