Fixed #20625 -- Chainable Manager/QuerySet methods.

Additionally this patch solves the orthogonal problem that specialized
`QuerySet` like `ValuesQuerySet` didn't inherit from the current `QuerySet`
type. This wasn't an issue until now because we didn't officially support
custom `QuerySet` classes but it became needed with the introduction of this
new feature.

Thanks aaugustin, akaariai, charettes, mjtamlyn and timgraham for the reviews.