Improve requirement reporting by unpack_source_dists()

At first I just wanted to add a fourth boolean `is_transitive' to each
tuple but that would be backwards incompatible towards external callers
of unpack_source_dists(). Instead I decided to implement
pip_accel.req.Requirement objects which are a lot friendlier to future
extensions. As a bonus they're also compatible with the old API through
some __iter__ / __getitem__ magic.