Prepare to move ThumbnailCache instance into MainWindow.
Having ThumbnailCache be a singleton means that it must know how to
create its own instance. This is runs really counter my plans to save
the thumbnail dimensions alongside the thumbnail cache.
Also, we have ridiculously many singletons all over the place. We should
really try to get this down and have a few central places that
initialize and hold those singletons instead.