* Performance improvements
Two main changes:
1. Cache parsed AST in a Source. So Parser will parse content only once.
2. Use one unified visitor with multiple callbacks instead of multiple
visitors to traverse AST.
This improves performance significantly, for example running it on
Crystal repository takes ~1 second, which 6 times faster than before.
* Change readme example