Segfault when erroneously passing non-utf8 bytes object to pandas.Index
*Root cause* appears to lie in numpy, raising this here just for completeness

```
In [0]: import pandas; pandas.Index(b'\xc7')
Segmentation fault
```

#### Problem description

Calling `pandas.Index` and passing in a bytes object that is not valid UTF8 results in a segfault.

This call pattern is not valid and, for example, calling:
```
pandas.Index(b'foo')
```

raises the expected exception)

    TypeError: Index(...) must be called with a collection of some kind, b'foo' was passed

But it is not ideal that pandas generates a segfault in this case.

#### Analysis

This appears to *not* be directly a pandas issue.  
Down the stack, pandas ends up calling numpy.dtype() (pandas/core/dtypes/common.py:2084)
and passing in the bytes object.  This causes the segfault.

I'm still raising this just so there's a record, but the fix looks like it lives somewhere else.

#### Expected Output

TypeError: Index(...) must be called with a collection of some kind, b'\xc7' was passed

#### Output of ``pd.show_versions()``
INSTALLED VERSIONS
------------------
commit: None
python: 3.7.3.final.0
python-bits: 64
OS: Linux
OS-release: 4.9.125-linuxkit
machine: x86_64
processor:
byteorder: little
LC_ALL: None
LANG: None
LOCALE: en_US.UTF-8

pandas: 0.24.2
pytest: 5.0.0
pip: 19.1.1
setuptools: 40.8.0
Cython: 0.29.11
numpy: 1.16.2
scipy: 1.1.0
pyarrow: 0.13.0
xarray: None
IPython: 7.5.0
sphinx: 2.1.2
patsy: 0.5.1
dateutil: 2.7.3
pytz: 2019.1
blosc: None
bottleneck: None
tables: 3.4.4
numexpr: 2.6.9
feather: None
matplotlib: 3.0.2
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml.etree: 4.3.3
bs4: 4.7.1
html5lib: 1.0.1
sqlalchemy: 1.3.5
pymysql: None
psycopg2: None
jinja2: 2.10.1
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None
gcsfs: None