Wrong behavior for df.groupby(())
(I know that the following bug report will be dismissed, since what I refer to here as a "bug" is clearly intentional.  I'm posting it only for-the-record.)

Currently, an exception is raised if DataFrame.groupby is called with an empty tuple as argument:

```
>>> df.groupby(by=())
...
ValueError: No group keys passed!
```

Indeed, the underlying code is pretty direct about it:

```
.../python2.7/site-packages/pandas/core/groupby.pyc in _get_grouper(obj, key, axis, level, sort)
   2277 
   2278     if len(groupings) == 0:
-> 2279         raise ValueError('No group keys passed!')
   2280 
```

This is not the correct behavior for this condition.  It is therefore a "design bug".  The correct behavior should be returning a trivial grouping, consisting of exactly 1 group (containing, of course, all the rows).  This is consistent with the semantics "each group consists of the rows that agree on the grouping columns": when there are no grouping columns, all rows fall into one group.

In particular, the proposed behavior will render the expression

```
df.groupby(by=tuple(df.columns))
```

valid even when `df` has no columns.  The expression above groups identical rows together, and it should work for all valid dataframes.  In a dataframe with no columns, all the rows are identical.
