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.