BUG: DataFrame outer merge changes key columns from int64 to float64
```
import pandas as pd

df1 = pd.DataFrame({'key': [1,2,3,4], 'val1': [1,2,3,4]})
df2 = pd.DataFrame({'key': [1,2,3,5], 'val2': [1,2,3,4]})

df = df1.merge(df2, how='outer')
```

Was expecting `key` to stay int64, since a merge can't introduce missing key values if none were present in the inputs.

```
print df.dtypes

key     float64
val1    float64
val2    float64
dtype: object
```

Version 0.15.0-6-g403f38d
