Initial version of classes cache and associated supporting structures. The cache logic is run in a separate thread from the UI to ensure responsiveness.

Very much a prototype at this point.