Arguably better handling of input data in constructor for DataFrame (fix for #4297)

The problem was basically an odd restriction to `list` ,`tuple`, `dict`, or `numpy.ndarray` for data structure given as input to any constructor for DataFrame. Much cruder than a possible issue around buffer protocols I thought (the whole issue report went off on a tangent anyway ;-) ).

The source did not have much (any, actually) comments in that region, and I could not find unit tests documenting the behaviour, but I am guessing that the restriction stemmed from the fact that a string is a sequence in Python while the constructors should consider one string passed as data a scalar rather than a sequence.

The change made goes the other way around and accepts any sequence (not just `tuple`, `list`, or `numpy.ndarray`), except `str` or `unicode` (the later only applies to Python 2.x). `bytes` and `bytearray` are allowed (but I am not sure they should).

The pull request was tested (only `tests/test_frame.py` was run) on Python 2.7.4 and 3.3.1