Different dtype for Series in empty DataFrame depending on construction.
#### Code Sample, a copy-pastable example if possible

```python
>>> df0 = pd.DataFrame({}, columns=['A'])
>>> df1 = pd.DataFrame({'A': []})
>>> df0.columns
Index(['A'], dtype='object')
>>> df1.columns
Index(['A'], dtype='object')
>>> df0.empty
True
>>> df1.empty
True
>>> df0['A']
Series([], Name: A, dtype: object)
>>> df1['A']
Series([], Name: A, dtype: float64)
```
#### Problem description

The dtype of `df0['A']` and `df1['A']` differ (`object` vs `float64`) which is confusing and can lead to subtle bugs.

#### Expected Output

The dtype of `df0['A']` and `df1['A']` should match.

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

<details>

INSTALLED VERSIONS
------------------

commit: None
python: 3.7.0.final.0
python-bits: 64
OS: Linux
OS-release: 4.18.9-arch1-1-ARCH
machine: x86_64
processor: 
byteorder: little
LC_ALL: None
LANG: en_GB.utf8
LOCALE: en_GB.UTF-8

pandas: 0.23.4
pytest: None
pip: None
setuptools: 40.4.3
Cython: 0.28.5
numpy: 1.15.1
scipy: 1.1.0
pyarrow: None
xarray: None
IPython: 6.5.0
sphinx: 1.8.0
patsy: None
dateutil: 2.7.3
pytz: 2018.5
blosc: None
bottleneck: None
tables: None
numexpr: None
feather: None
matplotlib: 2.2.3
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: None
sqlalchemy: 1.2.11
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None
</details>