Add a createPackFile method to Pack class.
Refactor fetch to use createPackFile method from pack.
Refactor clone to use createPackFile method from pack.
More cleanup and refactor of clone.
Merge pull request #2345 from dart-lang/refactor_clone

[maintenance] Refactor clone