Spl iterators

A bunch of improvements on SPL iterators. This includes somewhat complete implementations of:
* `Traversable` (core interface)
* `IteratorAggregate` (core interface)
* `IteratorIterator`
* `AppendIterator`
* `FilterIterator`
* `RecursiveIteratorIterator`
* `ArrayObject` (incomplete)

and random fixes and refactorings.