persistent-mysql: Immediately fetch all results into memory.
persistent-mysql: Immediately fetch all results into memory.

Since we're already using 'storeResult' (i.e., mysql_store_result),
all the rows are going to be on the client's memory anyway, but inside
a MySQL buffer.  This commit changes withStmt' so that we fetch to all
rows to Haskell-land as soon as possible and then free the MySQL buffer.

The hugest benefit of this commit is that now you'll be able to use
nested transactions with persistent-mysql.  For example, now you may
use deleteCascadeWhere.

The drawback is that we may end up converting some rows that may not
be needed by the Haskell code.  But since most of the persistent code
out there already uses list variants which will fetch all results
right away anyway, not much has been lost.

mitchellwrosen/persistent,meteficha/persistent,plow-technologies/persistent,gbwey/persistentold,nakaji-dayo/persistent,greydot/persistent,erikd/persistent,naushadh/persistent,gbwey/persistent,junjihashimoto/persistent,meteficha/persistent,andrewthad/persistent,junjihashimoto/persistent,jcristovao/persistent,gbwey/persistent,pseudonom/persistent,paul-rouse/persistent,yesodweb/persistent,andrewthad/persistent,jasonzoladz/persistent,gbwey/persistent,rdnetto/persistent,mkscrg/persistent,mkscrg/persistent,mitchellwrosen/persistent,nakaji-dayo/persistent,bitemyapp/persistent,greydot/persistent,jasonzoladz/persistent,jasonzoladz/persistent,greydot/persistent,creichert/persistent,psibi/persistent,superduper/persistent,pseudonom/persistent,superduper/persistent,mkscrg/persistent,jcristovao/persistent,jcristovao/persistent,meteficha/persistent,rdnetto/persistent,nakaji-dayo/persistent,gbwey/persistentold,mitchellwrosen/persistent,andrewthad/persistent,superduper/persistent