prefer filepath.Join() to string concatenation

This resolves a bug on OSX in lookupDir() where os.GetWd() returned a
path with trailing slash and the existing string concatenation yielded
2 consecutive slashes, causing the lookup to fail. I also fixed a few
other spots where Join() should be used.