Fixed #17001 -- Custom querysets for prefetch_related.

This patch introduces the new Prefetch object that can be used to customize
prefetch operations.

Among other things this enables filtering prefetched relations, calling
select_related from a prefetched relation, or prefetching the same relation
multiple times with different querysets.

When a Prefetch instance specifies a to_attr argument, the result is stored
in a list rather than a QuerySet. This has the fortunate consequence of being
significantly faster than traditional prefetch. The preformance improvement
is due to the fact that we save the costly creation of a QuerySet instance.

Thanks @akaariai for the review and the original patch.