[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.