BUG: Properly validate and parse nrows in read_csv
1) Allows `float` values for `nrows` for the Python engine
2) Prevents abuse of the `nrows` argument for the CParser (e.g. you can passing `nrows=1.2`)

Closes #10476.
