ERR: Series must have a singluar dtype otherwise should raise
When constructing a `Series` object using a numpy structured data array, if you try and cast it to a `str` (or print it), it throws:

```
TypeError(ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'')
```

You can print a single value from the series, but not the whole series.
#### Code Sample, a copy-pastable example if possible

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

c_dtype = np.dtype([('a', 'i8'), ('b', 'f4')])
cdt_arr = np.array([(1, 0.4), (256,  -13)], dtype=c_dtype)

pds = pd.Series(cdt_arr, index=['A', 'B'])

print('pds.iloc[0]: {}'.format(str(pds.iloc[0])))   # (1, 0.4000000059604645)
print('pds.iloc[1]: {}'.format(str(pds.iloc[1])))   # (256, -13.0)
print('pds.loc["A"]: {}'.format(str(pds.loc['A']))) # Works
print('pds.loc["B"]: {}'.format(str(pds.loc['B']))) # Works

def print_error(x):
    try:
        o = str(x)      # repr(x) also causes the same errors
        print(o)
    except TypeError as e:
        print('TypeError({})'.format(e.args[0]))

a = pds.iloc[0:1]
b = pds.loc[['A', 'B']]

print('pds.iloc[0:1]:')
print_error(a)
print('pds.loc["A", "B"]:')
print_error(b)
print('pds:')
print_error(pds)

print('pd.DataFrame([pds]).T:')
print_error(pd.DataFrame([pds]).T)

print('pds2:')
cdt_arr_2 = np.array([(1, 0.4)], dtype=c_dtype)
pds2 = pd.Series(cdt_arr_2, index=['A'])
print_error(pds2)
```
#### Output (actual):

```
$ python demo_index_bug.py 
pds.iloc[0]: (1, 0.4000000059604645)
pds.iloc[1]: (256, -13.0)
pds.loc["A"]: (1, 0.4000000059604645)
pds.loc["B"]: (256, -13.0)
pds.iloc[0:1]:
TypeError(ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'')
pds.loc["A", "B"]:
TypeError(ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'')
pds:
TypeError(ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'')
pd.DataFrame([pds]).T:
                         0
A  (1, 0.4000000059604645)
B             (256, -13.0)
pds2:
TypeError(ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'')
```
#### output of `pd.show_versions()`:

```
INSTALLED VERSIONS
------------------
commit: None
python: 3.5.1.final.0
python-bits: 64
OS: Linux
OS-release: 4.5.2-1-ARCH
machine: x86_64
processor: 
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8

pandas: 0.18.1
nose: None
pip: 8.1.2
setuptools: 21.0.0
Cython: 0.24
numpy: 1.11.0
scipy: 0.17.1
statsmodels: None
xarray: None
IPython: 4.2.0
sphinx: 1.4.1
patsy: None
dateutil: 2.5.3
pytz: 2016.4
blosc: None
bottleneck: None
tables: None
numexpr: None
matplotlib: 1.5.1
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: None
httplib2: None
apiclient: None
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: 2.8
boto: None
pandas_datareader: None
```
#### Stack Trace

I swallowed the stack traces to show where this was failing, so here's the traceback for that last error:

```
Traceback (most recent call last):
  File "demo_dtype_bug.py", line 37, in <module>
    print(pds2)
  File "~/.local/lib/python3.5/site-packages/pandas/core/base.py", line 46, in __str__
    return self.__unicode__()
  File "~/.local/lib/python3.5/site-packages/pandas/core/series.py", line 984, in __unicode__
    max_rows=max_rows)
  File "~/.local/lib/python3.5/site-packages/pandas/core/series.py", line 1025, in to_string
    dtype=dtype, name=name, max_rows=max_rows)
  File "~/.local/lib/python3.5/site-packages/pandas/core/series.py", line 1053, in _get_repr
    result = formatter.to_string()
  File "~/.local/lib/python3.5/site-packages/pandas/formats/format.py", line 225, in to_string
    fmt_values = self._get_formatted_values()
  File "~/.local/lib/python3.5/site-packages/pandas/formats/format.py", line 215, in _get_formatted_values
    float_format=self.float_format, na_rep=self.na_rep)
  File "~/.local/lib/python3.5/site-packages/pandas/formats/format.py", line 2007, in format_array
    return fmt_obj.get_result()
  File "~/.local/lib/python3.5/site-packages/pandas/formats/format.py", line 2026, in get_result
    fmt_values = self._format_strings()
  File "~/.local/lib/python3.5/site-packages/pandas/formats/format.py", line 2059, in _format_strings
    is_float = lib.map_infer(vals, com.is_float) & notnull(vals)
  File "~/.local/lib/python3.5/site-packages/pandas/core/common.py", line 250, in notnull
    res = isnull(obj)
  File "~/.local/lib/python3.5/site-packages/pandas/core/common.py", line 91, in isnull
    return _isnull(obj)
  File "~/.local/lib/python3.5/site-packages/pandas/core/common.py", line 101, in _isnull_new
    return _isnull_ndarraylike(obj)
  File "~/.local/lib/python3.5/site-packages/pandas/core/common.py", line 192, in _isnull_ndarraylike
    result = np.isnan(values)
TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
```
