WIP: RFC: cache parse results while loading files

This is my attempt at partial caching of the results of loading `.jl` files. It is functional, but since it does not detect file changes yet, it is a little unsafe right now.

On the julia machine, it reduced the load time of Tk from 4.3 seconds to 2.9 seconds. On my Mac, it reduced the time from ~10 s to ~6 s.

TODO items:
 - [ ] stop printing "cache file no found" when loading files
 - [ ] address compiler warning regarding sprintf declaration
 - [ ] store timestamp in the cache file (don't use old cache)
 - [ ] get Jeff to merge pull requests
 - [ ] improve efficiency of GC roots for cache file operations (teach the GC about a ptrhash, use weakrefs)