Make study listings async

This is a first attempt start at making things async. As an example, this makes the creation of the study listings async so the loading is non-blocking or other pages.
That's what wrapping in callback does. It's really weird, but if you don't give a callback to Task(), it just returns.