Inconsistent behaviour for DataFrames with no columns
#### Code Sample

```python
import pandas as pd
df1 = pd.DataFrame(index=range(5), columns=['c1'])
df2 = pd.DataFrame(index=range(5))

df1.loc[6] = np.nan
df1.loc[7] = [8]*df1.shape[1]

df2.loc[6] = np.nan  # Raises ValueError: cannot set a frame with no defined columns
df2.loc[7] = [8]*df2.shape[1]  # Raises ValueError: cannot set a frame with no defined columns
```
#### Problem description
Adding new rows to dataframes can be done using .loc.

This however, only works if the dataframe has columns. If not, a ValueError is raised, eventhough the values we try to assign to this new row have the length zero (`df1.loc[8] = []`). I feel that this is a strongly inconsistent behaviour. Is there any specific reason to raise a ValueError in this case?

I am aware that this is an edge case, as a dataframe without columns has limited use. However I argue that having a table with a consistent index should behave consistently for any number of columns, which also includes no columns at all. I don't see a reason why a df without columns should be have differently than one having some columns.
