ENH: add chunksize argument to read_sql (GH2908)

Closes #2908 

Should probably add this also to `read_sql_table`. And try to reduce some repetitions (`_wrap_result` can maybe be a top-level (in the file) helper function).
`_wrap_results` is already a module level function (if I understand correctly what you mean)

Problem with making it a module level function, is that I would have to make two versions of the function (see the two `_query_iterator` methods now), one for each class that uses it (PandasSQLALchemy and PandasSQLLegacy). So for that it seemed more logical to put it in the class itself. 

On implementing an Iterator class, I had seen the implementation in pytables, but it seemed a lot more complex than what I needed here. The simple ``_query_iterator`` functions seems to do all I need. Is there an advantage in making it a class?