Build constructs a filesystem hierarchy given a layout.
The layouts keys should be ToSlash-style file paths. Its values should be the content that is written at those paths. Intermediate directories will be automatically created.
To create a directory, end its path with a "/". In this case, the content will be ignored.
Collect constructs layout from a given directory.
This function does reverse of Build. Content of empty directory is represented as "" with "/" suffix. But this does not work if there are symlink entries under |base| dir.