ReadOnlyCollectionPage

* Add `ReadOnlyCollectionPage<T>` as a consistent API for paginated collections
* Use `ReadOnlyCollection<T>` instead of `IEnumerable<T>` or `T[]` for the return value for non-paginated collections