Added Collections to Orm Data Results

This change is a proof of concept of extendable per-model data collections being set up for any ORM dataset, while still not interfering with existing code.

In short, instead of returning a static array, this would return an object with ArrayAccess enabled on it so that you can still treat it like an array, but each model can custom define a collections model so that one has infinite flexibility on the data that is returned.

I am confident there is a more efficient way of generating these collections, however this will get the ball rolling.

Feel free to contact me with further questions on this.

Thanks,