Implement course-wide asset paging methods.

Add SortedCollection class to help sort lists efficiently.
https://openedx.atlassian.net/browse/PLAT-74
Could you make the contract more explicit, that `sort` is limited to either `ascending` or `descending`?