Infinite scrolling for files app

Adds in-memory infinite scroll: the whole files list is loaded into a JS array but only the next 20 table rows are rendered, and then the next 20, etc when scrolling.