Fix issue #1433: parse requirements in markers

* InstallRequirement supports PEP 426 markers
* RequirementSet.add_requirement() ignores an InstallRequirement if
  markers don't match.
requirement markers: use '; ' separator

';' separator is not a good choice because it may be used in URL. For
example, test_url_with_query() uses the URL::

    http://foo.com/?p=bar.git;a=snapshot;h=v0.1;sf=tgz

'; ' is better because spaces can be replaced with %20 in URLs. I expect
spaces to be more rare than semicolons in URLs. Space is already used as
separator between project name and version ('django >= 1.5').
InstallRequirement uses ast.literal_eval() to parse a line

Add also unit tests