[macros] remove requirement to have clean work (sub)tree for git_archive
Done by generating dir_name based just on remote URL and path and not
based on work-tree state (dirty/clean). Generating appropriate source
name is now responsibility of each git_pack and git_archive. git_archive
needs at least one commit and it never puts $GIT_BRANCH into the source
name. Also, watch out for empty dir_name (case when remote URL has not
been set).