[TYPING] pandas.io.formats.format._binify annotation is inconsistent with  DataFrameFormatter.__init__
#### Problem description

`pd.io.formats.format._binify` defines `line_width` as `Union[np.int32, int]`:

https://github.com/pandas-dev/pandas/blob/39602e7d7c5b663696f5a6eca9e66e65483bc868/pandas/io/formats/format.py#L1893

however it is inconsistent with `DataFrameFormatter.__init__` 

https://github.com/pandas-dev/pandas/blob/39602e7d7c5b663696f5a6eca9e66e65483bc868/pandas/io/formats/format.py#L518

and `DataFrameFormatter._join_multiline`

https://github.com/pandas-dev/pandas/blob/39602e7d7c5b663696f5a6eca9e66e65483bc868/pandas/io/formats/format.py#L871

which take and pass as-is `Optional[int]`.

This leads to Mypy error:

```
pandas/io/formats/format.py:871: error: Argument 2 to "_binify" has incompatible type "Optional[int]"; expected "Union[int32, int]"
```

Providing default in [`_join_multiline`](https://github.com/pandas-dev/pandas/blob/39602e7d7c5b663696f5a6eca9e66e65483bc868/pandas/io/formats/format.py#L860), i.e.

```python
lwidth = self.line_width or DEFAULT_LINE_WIDTH
```
could be reasonable fix. One could also ignore [the call](https://github.com/pandas-dev/pandas/blob/39602e7d7c5b663696f5a6eca9e66e65483bc868/pandas/io/formats/format.py#L871):

```python
col_bins = _binify(col_widths, lwidth)  # type: ignore
```

but that leaves possible correctness problem.



#### Expected Output

Passing Mypy type check

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

```
INSTALLED VERSIONS
------------------
commit           : bee17d5f4c99e6d1e451cf9a7b6a1780aa25988d
python           : 3.7.3.final.0
...
```
Additionally
```
mypy==0.730
```

CC @WillAyd 