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)
Something like this?
```diff
diff --git a/numpy/core/src/multiarray/ctors.c b/numpy/core/src/multiarray/ctors
index fb19029..b31d2a7 100644
--- a/numpy/core/src/multiarray/ctors.c
+++ b/numpy/core/src/multiarray/ctors.c
@@ -3573,7 +3573,7 @@ PyArray_FromIter(PyObject *obj, PyArray_Descr *dtype, npy_
         goto done;
     }
     value = PyIter_Next(iter);
-    if (PyErr_Occurred()) {
+    if (value == NULL || PyErr_Occurred()) {
         goto done;
     }
     elcount[0] = (count < 0) ? 0 : count;
```