Add --use-submodules option to `carthage checkout`

Resolves #56.

**To do:**

 - [x] ~~Skip recursive cloning for non-submoduled dependencies that live in `Carthage.checkout` (i.e., smartly omit Carthage-managed submodules from normal recursive checkouts)~~
 - [x] Honor submodules already present with `carthage checkout`

/cc @mdiep 
Oof, sorry, that wasn’t very helpful of me.

I find this function hard to follow. It’s mostly the nature of what it’s doing, but maybe a sign that it could be profitably broken up into smaller functions. But maybe not.