[WIP] Resolver

Closes https://github.com/CocoaPods/CocoaPods/issues/978, https://github.com/CocoaPods/CocoaPods/issues/1489, https://github.com/CocoaPods/CocoaPods/issues/2002

This branch is very much a work in progress, but I wanted to give us a place to discuss the final steps of integrating [the resolver](https://github.com/CocoaPods/Resolver) back into CocoaPods.

This PR won't be merged for a while, so I welcome any and all feedback.

Major (non-code) holdups:
- [ ] Name for resolver gem
- [ ] Launch version for resolver gem
- [ ] Specs for conflict Podfiles that we now support
- [ ] Performance torture testing
- [ ] More complete documentation
- [ ] Analyzer specs for handling implicitly locked dependencies (https://github.com/CocoaPods/CocoaPods/issues/2318)
- [ ] Code review of the resolver gem itself
I assume that this means: the firmer the version requirements, the easiest it is to resolve? i.e. '= 1.2.3' is pretty clear, whereas '~> 1.2.3' could change depending on other dependencies in the graph?