Queryset.first() and last() methods (#19326 on trac)

Hi there,

This pull request implements first and last queryset methods. You can find the relevant discussions on this topic here:

https://code.djangoproject.com/ticket/19326
https://groups.google.com/forum/?fromgroups=#!searchin/django-developers/get_default/django-developers/3RwDxWKPZ_A/mPtAlQ2b0DwJ
https://groups.google.com/forum/?fromgroups#!searchin/django-developers/first$20last/django-developers/iaOIvwzUhx4/x5wKtl7Bh2sJ
Let me know if there's anything you want me to change.

This pull request contains improvements on top of https://github.com/django/django/pull/1054

Best,
Selwin