DRILL-3285: Part 5--Split old hacky next() into separate methods.
Split the original public next() method (which was hacked to handle an extra,
initial call to read the schema batch) into:
- new loadInitialSchema() (for handling the call for the schema)
- modified next() (for handling normal calls from ResultSet.next())
- new private nextRowInternally() (for common code)
Pulled invariant afterFirstBatch up out of bogus-batch loop.