FEAT: start new solver, add constraint matching.
ENH: implement hahsing for constraints classes.
ENH: support implicit 0 build number.

This helps defining constraints such as "< 1.3".
ENH: consolidate EnpkgUpstreamMatch to take version object in ctor.
FEAT: add simple constraint parser.
FEAT: add MultiConstraints class to model a set of constraints.
REF: split off token regex.
FEAT: add requirement parser.
FEAT: add Requirement for new solver.
FEAT: add basic Pool class.
ENH: add help ctor for Requirement.
DOC: add more doc for Requirement class.
BUG: use our vendorized six.
ENH: expose public API in new_solver init.
STY: pep8-ify new_solver.
BUG: define __ne__ everywhere we define __eq__.
ENH: add matches in _VersionConstraint base class.
ENH: use hash and not id for hashing Any constraint.

Use id for hash may cause trouble in some cases.
REF: simply use next instead of advance_iterator.
BUG: fix docstring for Requirement._from_string.