Support tags in addition to branches with ``fabtools.require.git.working_copy``

This change allows to pass tag names with the branch parameter, which previously failed if the tag didn't yet exist in the working copy.  Now the ``fetch`` and ``checkout`` operations are always executed, and only ``pull`` depends on ``update`` being ``True``.