`top` is a method from `SplHeap`, `Collection` does not implement `ArrayAccess` and further more, we cannot be sure that the keys are positional. This version is the lazy man of calling `rewind`, `next` and `current` to get the first element in the iterator. Do you think it would be better to just implement a `first` method?