[CHEF-4051] Add a "clean" option to Git SCM provider

There is no way to clean a Git checkout currently. However, it might be
desired to enforce such a state. E.g. when removing submodules from
version control, `git checkout` will not remove the old files.

Adding a `clean` attribute, which runs `git clean -f` after checkout
makes this possible.