[SPARK-2650][SQL] Build column buffers in smaller batches

Maybe I don't get it correctly, but do you mean we should try to reuse batch buffers rather than always allocate new ones for a new batch? I like the idea, and it can surely make the column buffer building process more memory efficient. But currently due to the way `ColumnBuilder` is implemented, buffer reusing needs more work to be done, probably in another PR :)