Add git.fetch operation and use it in require.git.working_copy.

``require.git.working_copy`` currently doesn't do what's expected when the working copy already exists *and* shall be updated *and* a different branch shall be checked out.  To support this use case the ``git.fetch`` operation has been added and is used in ``require.git.working_copy``.