BUG: DataFrame.reindex sometimes promotes float16 / float32
#### Code Sample, a copy-pastable example if possible

```python
>>> x = pd.DataFrame([[0]], dtype='float32')
>>> [x.reindex(i, [1]).dtypes[1] for i in [[0], [1]]]
[dtype('float64'), dtype('float32')]
```
#### Problem description

When a float16 / float32 DataFrame gets reindexed, new columns of nans are sometimes created as float64, depending on the specific indices requested. I think the expected behaviour is to create nans at the largest type of existing columns? In any case, the type of an empty column probably shouldn't depend on which indices it couldn't find.

#### Expected Output

```python
[dtype('float32'), dtype('float32')]
```

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

<details>

INSTALLED VERSIONS
------------------
commit: None
python: 3.5.2.final.0
python-bits: 64
OS: Linux
OS-release: 4.9.8-100.fc24.x86_64
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: C
LANG: C
LOCALE: None.None

pandas: 0.19.2
nose: 1.3.7
pip: 9.0.1
setuptools: 27.2.0
Cython: 0.25.2
numpy: 1.11.3
scipy: 0.18.1
statsmodels: 0.8.0
xarray: 0.9.1
IPython: 4.2.0
sphinx: 1.5.1
patsy: 0.4.1
dateutil: 2.6.0
pytz: 2016.10
blosc: None
bottleneck: 1.2.0
tables: 3.3.0
numexpr: 2.6.2
matplotlib: 2.0.0
openpyxl: 2.4.1
xlrd: 1.0.0
xlwt: 1.2.0
xlsxwriter: 0.9.6
lxml: 3.7.2
bs4: 4.5.3
html5lib: 0.999
httplib2: None
apiclient: None
sqlalchemy: 1.1.5
pymysql: None
psycopg2: None
jinja2: 2.9.4
boto: 2.45.0
pandas_datareader: None
</details>
