Check dependencies out in the user’s `Caches` directory

This puts them into `~/Library/Caches/org.carthage.CarthageKit/dependencies/`. Prompted by #81.

- [x] Depends on https://github.com/LlamaKit/LlamaKit/pull/14.
- [x] Depends on https://github.com/Carthage/Carthage/pull/168.
- [x] Depends on https://github.com/Carthage/LlamaKit/pull/1 (I mean, I closed that out, but kinda).
- ~~Is a `nil` value for `bundleIdentifier` possible?~~
- [x] Handle `nil` caches directory failures.
- ~~Submit a LlamaKit PR for `.either`.~~
- [x] Purge the old caches dir.
Can we make these globals type `Result` instead, and return an error for `carthage` to “handle” (i.e., print then die)? I don't think a library should `exit()` on behalf of its parent process.