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
Don't think the comment is needed. Not sure the test adds much either (given its complexity) since this seems more like cleaning up the implementation than solving an actual bug.