BUG: Corrects stopping logic when nrows argument is supplied (#7626)
 - closes #7626 - Subsets of tabular files with different "shapes" will now load when a valid skiprows/nrows is given as an argument
 - [x] tests added / passed - Test case added to io/tests/parser/common.py. nosetests suite passed successfully.
 - [x] passes ``git diff upstream/master | flake8 --diff``

Conditions for error:
1) There are different "shapes" within a tabular data file, i.e. different numbers of columns.
2) A "narrower" set of columns is followed by a "wider" (more columns) one, and the narrower set is laid out such that the end of a 262144-byte block occurs within it.

Issue summary: 
The C engine for parsing files reads in 262144 bytes at a time. Previously, the "start_lines" variable in tokenizer.c/tokenize_bytes() was set incorrectly to the first line in that chunk, rather than the overall first row requested. This lead to incorrect logic on when to stop reading when nrows is supplied by the user. This always happened but only caused a crash when a wider set of columns followed in the file. In other cases, extra rows were read in but then harmlessly discarded.

This pull request always uses the first requested row for comparisons, so only nrows will be parsed  when supplied.