Fixing file indentation
Cleanup use statements
Implemented Collection::sumOf()
Add space after closures' function keyword
Started to implement a BufferedIterator
Implementing Collection::compile() using BufferedIterator
Added tests and fixed a bug in BufferedIterator
Fixed doc blocks
Reverting changes done to Collection::compile() as it breaks other code

The main reaosn compile exsted was to detach the iterator pointers from one
collection to the other. The solution using another iterator still keeps those
pointers, causing old bugs to re-appear
Added Collection::buffered() to make any non-rewidable rewindable
Using push() instead of add() since the latter is php 5.5+
Fix doc block typo.
Doc block updates for BufferedIterator.
Making BufferedIterator Countable as an optimization for the ORM
Removing magic count proxy in BufferedIterator, it was a bad idea
Extracting collection definition into an interface
Adding a ResultSetInterface to standarize the result of a query