bugfix of `drop` (also fixes `skip`)

The implementation of `drop` was plain wrong, provoking this kind of
problem:

```ocaml
# let s = Stream.of_list [ 1 ; 2 ; 3 ];;
val s : int Stream.t = <abstr>
# Stream.next s;;
- : int option = Some 1
# Stream.next s;;
- : int option = Some 2
# Stream.drop s 1;;
- : unit = ()
# Stream.next s;;
- : int option = Some 3
```