Shell out to invoke pip commands
Shell out to invoke pip commands

This fixes a weird bug. It seems like there's an implementation detail
in pip somewhere that I did not fully understand.

Inside pip-tools, instead of "shelling out" to invoke `pip`, we used to
use `pip.main()` to "simulate" pip subcommand invocations.

So typically, we'd do a `pip.main(['uninstall', ...])`, then
a `pip.main(['install', ...])`.  However, it seems that between these
invocations internally, some register is not updated correctly.

Perhaps it's cached for perf reasons? Perhaps my assumptions are just
wrong.

In any case, pip-tools was relying on some pip implementation details
that should be of no concern, so this fixes that to use normal
subcommands.

Fixes #270.

suutari/prequ,suutari/prequ,suutari-ai/prequ