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

That is what it was doing when I was using `try` ಠ_ಠ

> I don't think a library should `exit()` on behalf of its parent process.

Ah, good point.

So the downside is that the dependencies URL constant depends on this and is used widely; so all of that stuff needs to be lifted inside the monad :cry: