Evil Jumper, cache file usage, and more text objects

On second thought, this looks like quite a bit.  If you have an issue or want me to change anything, I will try to CP each topic into a different PR.  Any tips on taking a stream of commits like this and breaking it down into individual branches?