run_test_from_archive: Rewritten to be more parallelized.

- Fetch files, create directories and symlinks all simultaneously.
- Opportinistically map the first files arrived instead of processing them in
  order.
- Creates all the needed directories in one pass, reducing the number of system
  calls like os.path.isdir().
- Add support for 'includes' manifest, e.g. fetch all files from another
  manifest in addition to the current one. This permits doing something like:
  1. Create a root manifest that contains all the usual script files.
  2. Create one manifest per command to run, referencing the root manifest in
      the 'includes' section by its hash. Note that includes are recursive.
  3. Optionally overide a file in to root manifest from what was defined in an
      included manifest.

Add more tests.

R=cmp@chromium.org
NOTRY=true
BUG=


Review URL: https://chromiumcodereview.appspot.com/10876044

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153755 0039d316-1c4b-4281-b951-d872f2087c98
10 files changed