Bug 570896 - [performance] Improve AliasManager LocationMap compare

Avoid memory allocation during compare

Part 2: changed implementation:
The compare is a memory hot spot. The old implementation used new
instances of Path during each compare and thus a lot of ephemeral String
memory allocation which did presssure the GC. The new implementation
avoids memory allocation at all by comparing the path string without
splitting it into several String instances.
Also the old Path constructor performed some non needed normalization of
path strings which are not needed for already normalized URI path
strings.
Also fixed compare contract sgn(compare(x, y)) == -sgn(compare(y, x))
in case of Exceptions
For compatibility the new version is only used for LocalFile.

Bug: 570896
Change-Id: I10a454af867ab3141d1f1ca33e55e4d0b6b26e85
Signed-off-by: jkubitz <jkubitz-eclipse@gmx.de>
6 files changed