ENH/API: allow DataFrame constructor to better accept list-like collections (GH3783,GH4297)

closes #3783
closes #4297
related to #2305 (as now accept GeneratorType), but just convert to list, don't incrementally create the frame