Recursively copy the distroSource directory

- The resulting grid library now contains the recursive set of files in
the given distroSource directory.  Note: when distroSource=foo/bar where
foo/bar/baz/index.html exists, baz/index.html will be added to the
archive.  That is, 'bar' will not prefix the entry.
- Added better unit tests to catch this case.
- Added support alternate for distroAlternateRootDirectory for distro
directories.