Fixed potential problem with IndexError in QuerySet.first()

The current implementation may suppress internal IndexError exceptions.

Please see ticket 23555 for more details. https://code.djangoproject.com/ticket/23555#ticket
If you prefer try/except then we can use it here, just don't remove `list((...)[:1])`. Otherwise this will catch that should not be catched. That's bad, really bad.