* Create a source tree of paths and their respective contents from the
ContractMetadata.
This is useful for file level analysis or writing the resulting files to disk.
* Test writing to disk via cargo test
* Test etherscan by uncommenting the ignore on
can_fetch_contract_source_tree_for_multi_entry_contract
and can_fetch_contract_source_tree_for_singleton_contract