promotion ints and empty object on concat
#### Code Sample, a copy-pastable example if possible

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

df1 = pd.DataFrame(columns=['Start','End','Duration'])
df2 = pd.DataFrame(np.array([None] * 3).reshape(-1,3),columns=['Start','End','Duration'])
df2['Start'] = 1
df2['End'] = 10
df2['Duration'] = 0.8

df1 = pd.concat([df1, df2], ignore_index=True)[df1.columns.tolist()]

```
#### Problem description

When concatenating the 2 dataframes df1 and df2, the type of "Start" and "End" changes from integer to float.

#### Expected Output
df1
Out[1]: 
   Start  End  Duration
0      1   10       0.8

#### Output of ``pd.show_versions()``
 df1
Out[2]: 
   Start   End  Duration
0    1.0  10.0       0.8

<details>
# Paste the output here pd.show_versions() here
u'0.18.1'
</details>
