Add cache expiration strategy for GetTaglist()

Cache expiration is now based on the mtime of the tag files, if any of the
tag files change it's mtime or the tag file list changes the previously
memoized return values will be cleared.
The caching now enabled by default.