Recursive annotation visiting

This is a cleaned up version of https://github.com/jruby/jruby/pull/548