Slow (and weird) empty dataframe creation
I measured the creation of an empty dataframe with 3 similar arguments:

```python
import pandas as pd
cols = np.arange(100)
index = np.arange(1000)

%timeit pd.DataFrame(columns=cols, index=index)
# 100 loops, best of 3: 18.8 ms per loop
%timeit pd.DataFrame({}, columns=cols, index=index)
100 loops, best of 3: 18.7 ms per loop
%timeit pd.DataFrame(np.nan ,columns=cols, index=index)
1000 loops, best of 3: 434 µs per loop

z1 = pd.DataFrame(columns=cols,index=index) # dtype -> object
z2 = pd.DataFrame({},columns=cols,index=index) # dtype -> object
z3 = pd.DataFrame(np.nan,columns=cols,index=index) # dtype -> float
```

If I understand correctly the code in here:
https://github.com/pandas-dev/pandas/blob/171c71611886aab8549a8620c5b0071a129ad685/pandas/core/frame.py#L399

the first 2 constructions are the same: the default value of data is an empty dictionary. 
The output is a dataframe of type object. 

The 3rd, with np.nan as initial value, is about 40 times faster, and the dtype is float, as expected.

So I would change:
1. the default value of data to np.nan. If one creates an empty dataframe with no specific  dtype, then the best pandas can do is to return the cheapest and fastest dataframe that can contain "empty" values. A dataframe of type float filled with np.nan is so a good candidate.


2. the documentation to report the current behavior.

What is your opinion?
