BUG/TST: Allow generators in DataFrame.from_records
closes #4910
- nrows implementation doesn't allow unknown size iterator like
  generators, if nrows = none ends with a TypeError.
- To allow generators if nrows=None consume it into a list.
- Add two tests of generators input.
