ignore profile output
performance improvements

- better fetcher using concurrent.futures (need 3.x work later on)
- replace lots of findall with iter
- a simple cache decorator (unbounded)
- cache validation results