SI-4788/SI-5948 Respect RetentionPolicy of Java annotations

I looked a bit how we handle `@deprecated`, `@Deprecated`, java, scala, etc, it seems things are not consistent currently. This will require a cleanup, but it does not need to happen in this PR. I filed https://issues.scala-lang.org/browse/SI-8883