Update dependencies and adjust the code to work with them.

Recast is the main thing that changed. We now use recast's visitor pattern.