Implement course-wide asset paging methods.

Add SortedCollection class to help sort lists efficiently.
https://openedx.atlassian.net/browse/PLAT-74
It's not the same in this case ```all_assets[1:-1:-1]``` vs. ```range(1, -1, -1)```.
Plus, wouldn't slicing create an unnecessary copy?