Support for flip

 Takes and iterator and yields its keys and values flipped

 Examples:

      iter\flip(new ArrayIterator(['a' => 1, 'b' => 2, 'c' => 3]))
      => iter(1 => 'a', 2 => 'b', 3 => 'c')