manifest: normalize name & path when constructing fs paths
manifest: normalize name & path when constructing fs paths

If the manifest uses a trailing slash on the name attribute, repo
will construct bad internal filesystem paths which confuses tools
later on.

For example, this manifest entry:
  <project name="aosp/platform/system/libhidl/" ...
will cause repo to use paths like:
  .repo/project-objects/aosp/platform/system/libhidl/.git/
when it really should be using:
  .repo/project-objects/aosp/platform/system/libhidl.git

Apply the normalization when we construct the local filesystem paths
as we cannot guarantee that the remote URL constructed from these
will behave the same.  A server might really want:
  https://example.com/aosp/platform/system/libhidl/
and would throw an error if we instead tried to fetch:
  https://example.com/aosp/platform/system/libhidl

Unfortunately, any existing repo client checkouts that use such a
manifest will hit a one-time sync error as the internal git location
has changed.  I'm not sure there's a way to cleanly migrate that.

Bug: https://crbug.com/1086043
Change-Id: I30bea0ffd23e478de89a035f408055e48a102658
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/268742
Tested-by: Mike Frysinger <8f3f75c74bd5184edcfa6534cab3c13a00a2f794@google.com>
Reviewed-by: David Pursehouse <e7b5c6a4a3dbaca972851f8c075e19915752593f@digital.ai>

lipro-yocto/git-repo,codetutil/git-repo,couchbasedeps/git-repo,lipro-yocto/git-repo,lewixliu/git-repo,aosp-mirror/tools_repo,lewixliu/git-repo,codetutil/git-repo,GerritCodeReview/git-repo,TheQtCompany/git-repo,GerritCodeReview/git-repo,TheQtCompany/git-repo,aosp-mirror/tools_repo,couchbasedeps/git-repo