Don’t save snapshots for targets that haven’t called MetadataStore.update_target_snapshot()
Restore generation of DynLibTarget.file_path

Regression by abd8c7b6c3fc1f62bbc9311123aec0144c3b8cf4, I inadvertently
copy&pasted the same code used for ExecutableTarget.
Add rudimentary printing of dependencies/dependants trees
Fix several errors in make.job.ExternalPipedCommandJob
Allow both bytes and str as stdout/stderr stream types for ExternalPipedCommandJob
Use universal_newlines = True to run unit test executable
New unit test: abc-test-file_ostream-write-utf8