Add ability to ignore entirely null rows when reading CSV
#### Example

example.csv:
```
col1,col2
1,a
2,b
3,c
,
```

```python
import pandas as pd
import numpy as np

# Runs OK, but would be useful to have an option to ignore null rows, as the integers are forced to floats.
pd.read_csv("example.csv")

# "ValueError: Integer column has NA values in column 0"
pd.read_csv("example.csv", dtype={"col1": np.int, "col2": "object"})
```
#### Problem description

I have encountered several cases of CSV files with one or more "empty" rows at the bottom - i.e. valid rows with the correct number of delimited fields, but without any data in the fields. This seems to be a "feature" of CSV exports from programs like Excel in some circumstances. The problem often doesn't get detected until run in Python, as users don't typically inspect the CSV files with a text editor (nor would I expect them to!).

So far, I have been unable to find any option within `pd.read_csv()` that allows these rows to be ignored. `skipfooter` requires the number of null lines to be known, which can only be done by reading through the entire file separately before handing it off to Pandas, and I'd prefer not to have to create a wrapper around every call to `pd.read_csv()`.

When reading such a file with `pd.read_csv()` without dtypes specified, the data is read, although with a couple of minor issues. Columns that would normally be parsed as integers are instead parsed as floats to allow NA values to exist, and the null rows need to be removed manually.

However, if using `pd.read_csv(..., dtype={...})`, an exception is thrown if the columns have a dtype without an NA representation - integers being the most obvious. I can't see any way to get Pandas to read the file with specified dtypes in this circumstance without preprocessing the file outside of Pandas. 

#### Expected Output

```
>>> pd.read_csv("example.csv", ignore_empty=True)
   col1 col2
0   1      a
1   2      b
2   3      c
>>> pd.read_csv("example.csv", ignore_empty=True, dtype={"col1": np.int, "col2": "object"})
   col1 col2
0   1      a
1   2      b
2   3      c
```

#### Output of ``pd.show_versions()``

<details>
INSTALLED VERSIONS
------------------
commit: None
python: 2.7.15.final.0
python-bits: 64
OS: Windows
OS-release: 7
machine: AMD64
processor: Intel64 Family 6 Model 42 Stepping 7, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None

pandas: 0.22.0
pytest: None
pip: 10.0.1
setuptools: 40.6.2
Cython: 0.29
numpy: 1.15.4
scipy: 0.19.1
pyarrow: None
xarray: None
IPython: None
sphinx: None
patsy: 0.5.0
dateutil: 2.7.3
pytz: 2018.5
blosc: None
bottleneck: None
tables: None
numexpr: None
feather: None
matplotlib: 2.2.3
openpyxl: None
xlrd: 1.1.0
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: None
sqlalchemy: None
pymysql: None
psycopg2: 2.7.5 (dt dec pq3 ext lo64)
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None
</details>
