Setting empty column on empty DataFrame
This issue appears in 0.13.0-rc1 and did not appear in 0.12.0-854-gde63e00

Let us say we have an empty DataFrame. Then the following calls (which worked in pandas 0.12) no longer work:

``` python
df = pd.DataFrame()
df['foo'] = []

df = pd.DataFrame()
df['foo'] = df.index

df = pd.DataFrame()
df['foo'] = range(len(df))
```

They all throw an exception:

```
File "/usr/local/lib/python3.2/dist-packages/pandas-0.13.0rc1-py3.2-linux-x86_64.egg/pandas/core/frame.py", line 1855, in __setitem__
    self._set_item(key, value)
  File "/usr/local/lib/python3.2/dist-packages/pandas-0.13.0rc1-py3.2-linux-x86_64.egg/pandas/core/frame.py", line 1915, in _set_item
    self._ensure_valid_index(value)

File "/usr/local/lib/python3.2/dist-packages/pandas-0.13.0rc1-py3.2-linux-x86_64.egg/pandas/core/frame.py", line 1899, in _ensure_valid_index
    raise ValueError('Cannot set a frame with no defined index '
ValueError: Cannot set a frame with no defined index and a non-series
```

The following will work:

``` python
df = pd.DataFrame()
df['foo'] = pd.Series([])

df = pd.DataFrame()
df['foo'] = pd.Series(df.index)

df = pd.DataFrame()
df['foo'] = pd.Series(range(len(df)))
```

The issue appears to be on lines 1897-1899 of pandas.core.frame:

``` python
if not len(self.index):
    if not isinstance(value, Series):
        raise ValueError('Cannot set a frame with no defined index '
```

Perhaps it could be changed to:

``` python
if not len(self.index) and len(value) > 0:
    if not isinstance(value, Series):
        raise ValueError('Cannot set a frame with no defined index '
```
