Fix llvm lit path test getting stuck in a loop

Previously the llvm_lit test would loop forever if the build directory did not live below the source directory.
The emsdk has not arranged my directories like that, instead it looks like `~/<snip>/emsdk/clang/fastcomp/{build_incoming_64,src}`. This also means I get warnings about being unable to sanity check.

I've put the locating the llvm source in a single method (instead of reimplementing it each time) and then added appropriate checking for the emsdk layout I've been given.
This comment needs to be updated a little, since we don't just look directly above.