Handling ResultSet::first() through collection functions

In the past we had to handle the first() function differently so we could close the statement and avoid segmentation faults in php. Due to improvements in how the statement is closed in the query and the connection, this is no loger required.

This has the nice side effect that calling `first()` on a ResultSet will not prevent you from getting the rest of the results.