Deque, fix an assertion in grow, then speed up grow

32 consecutive add_front reveal an internal logic error in add_front, the first commit fixes this.

The second commit adds bench tests.

The third commit speeds up grow (and the functions that use it) by a lot. We retain the vector instead of creating it anew for each grow. The logic of add_front/add_back is changed to accomodate that grow doesn't move self.lo back to 0 anymore.

Fourth commit is an extra that implements FromIterator