Series/DataFrame breaks truth-checking
This behavior is obviously by design. Why choose to break substitutability?

```
>>> bool([])
False
>>> bool(numpy.array([]))
False
>>> bool(pandas.Series(numpy.array([])))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/generic.py", line 892, in __nonzero__
    .format(self.__class__.__name__))
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
```

I ask, because I'd like to write idomatic Python that works for all containers, without need to special-case Pandas Series and DataFrames. There's no ambiguity for `[False]` nor `numpy.array([False])` ... oh.

```
>>> bool([False])
True
>>> bool(numpy.array([False]))
False
```

Ok, NumPy made an interesting choice here. But Pandas could reverse it and go back to standard truthiness: `len() == 0` means `False` and `len() > 0` means `True`.

I don't expect to actually cause a change here, but I'm curious as to what discussion happened on this point. If there's an archived email thread about this, could someone point me to it?
