Add functional tests for "kpm pack"

Please help to review functional tests for `kpm pack` @Eilon @davidfowl @lodejard @Praburaj.

I made utils that can create fake projects (directory tree) based on a directory structure represented by JSON. We can also represent an expected output directory structure with JSON and verify whether the actual output matches the expected output.
Make this more resilient, I guarantee that this will fail randomly. Add some retries in here.