When creating a fake symlink to a path just use
hash lookup via `fetch_node` and handle that failing
if the destination nodes does not exist vs. fetching the
parent and linear searching for the existing target
node (which gets slower as the parent node gets
more children).
This makes the preparing code using the little speed
test helper on my not-very-fast box change to be the
following:
Old (preparing) - Took 29.724 seconds to run
New (preparing) - Took 21.343 seconds to run
Part of ongoing blueprint make-things-speedy
Change-Id: I608b90ae58b4e4b6724b7f1bb8faebd118a1ec79