ENH: Make fromiter() accept iterators of sequences

Tests were added.

Fixes #4791.

The example from http://mail.scipy.org/pipermail/numpy-discussion/2006-November/024747.html now works:
```
>>> from numpy import fromiter
>>> fromiter(([x, x // 2, x+5] for x in range(1000)), dtype=int)
array([[   0,    0,    5],
       [   1,    0,    6],
       [   2,    1,    7],
       ..., 
       [ 997,  498, 1002],
       [ 998,  499, 1003],
       [ 999,  499, 1004]])
>>> _.shape
(1000, 3)
```

TODO:
* [x] Go very carefully over the whole patch and make sure there are no memory leaks
* [x] Add tests for corner cases, when the sequence lengths are not all the same in the iterator (it should raise an exception)
Hmm, but can't you have an empty sequence at this point? I think the comment is useful in explaining why object arrays aren't supported.