Refactor symlinks for tropohouse and tool

In order to sanely replace the symlink code on Windows, first we need to factor it out into as few places as possible.

1. Now we use the isopack.json file (read with the logic from isopack.js) to find out which arches are downloaded
2. There is a function specifically for making the latest tool symlink, which will be replaced with a non-symlink solution on Windows
I think it's a mild shame that this gets read twice for every project-context (once here, and then once again when actually loading it).  I think there's probably a refactoring where we take the two ProjectContext steps "download missing packages" and "build local packages", move the IsopackCache creation from the second to the first, and load isopacks for non-local packages into the IsopackCache during the first.  This can combine with the soft-refresh code ("previousIsopackCache") so that we don't have to do this check at all if you already have the package loaded into memory.

Not necessary for this change though!