topic: add a basic in-memory cache for topic information
Right know reading topic information twice means we uncompress a full
revision twice. On a simple hg topic --age
in my mercurial clone, the total
runtime move from 40s to 10s. Still too slow, but significantly less.