DataFrame.idxmax may return modified index/column dtype
In some circumstances, `idxmax` may return a Series with unexpected `dtype`:

``` python
>>> df = pandas.DataFrame(data=[[0.0, 1.0], [0.0, 1.0]], columns=[1,2], index=[1,2])
>>> df.idxmax(axis=0)
1    1
2    1
dtype: int64
```

``` python
>>> df = pandas.DataFrame(data=[[-inf, 1.0], [-inf, 1.0]], columns=[1,2], index=[1,2])
>>> df.idxmax(axis=0)
1   NaN
2     1
dtype: float64
```

In the second case, `dtype` is changed from `int64` to `float64` (even though both `columns` and `index` only contains `int64`.

I understand that `float64` is needed to actually store `NaN` in the second case but I find it confusing (and possible error-prone if we combine it with a subsequent call to `df.loc`, for example).

But maybe this is the expected behavior...

```
INSTALLED VERSIONS
------------------
commit: None
python: 2.7.6.final.0
python-bits: 64
OS: Linux
OS-release: 4.0.9-boot2docker
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: None

pandas: 0.17.1
nose: None
pip: 1.5.4
setuptools: 3.3
Cython: None
numpy: 1.10.4
scipy: 0.13.3
statsmodels: None
IPython: 4.0.1
sphinx: None
patsy: None
dateutil: 2.4.2
pytz: 2015.7
blosc: None
bottleneck: 1.0.0
tables: None
numexpr: 2.4.6
matplotlib: 1.5.1
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: 4.4.1
html5lib: 0.999
httplib2: None
apiclient: None
sqlalchemy: None
pymysql: None
psycopg2: None
Jinja2: None
```
