[WIP] Check out dependencies as Git subtrees

Resolves #178.

**To do:**

 - [x] Check whether we're checking out into a Git repository (if not, continue using `git checkout -f`)
 - [x] Run `git checkout --detach HEAD` so we can make multiple commits without polluting the parent repository's history
 - [x] Fetch objects from each subtree repository into the parent repository
 - [x] Determine if there's a merge-base between the dependency (subtree) revision and the parent repository's checkout
 - [x] If there is a merge-base, run `git merge -s subtree SUBTREE_OID` in the parent repository (or perhaps `-Xsubtree=path/to/checkout/`)
 - [x] If there is not a merge-base, run `git merge -s ours --no-commit SUBTREE_OID` then `git read-tree --prefix=path/to/checkout/ -u SUBTREE_OID` and `git commit`
 - [x] After enumerating all subtrees, merge the Carthage detached `HEAD` back into the original `HEAD`, with a helpful message
 - [x] ~~Conflict resolution, perhaps with~~ [`-s subtree -Xtheirs`](https://github.com/Carthage/Carthage/issues/178#issuecomment-68005863) :interrobang: 
 - [x] ~~Add `--force` option that overwrites local changes~~
 - [x] Update submodule logic to follow the same branch-commit-merge flow
 - [x] Skip Carthage merge when there are no changes
 - [ ] Decide what to do about subtrees that contain submodules (currently they just cause `.gitmodules` problems)
 - [ ] Don't force dependency additions, over the rules of `.gitignore`
 - [ ] Update README