Better ant / junit interaction

Currently junit test sources are always rebuilt, that's wasteful. The
second dependency on the junit task is there so that the first can be
skipped if sources haven't changed.

Also normalize package names versus location in the `test/junit` folder:
ant isn't very clever when it comes to selectively recompiling tests, so
now editing a test will only cause that one to be recompiled (instead of
~13 files every time).

This makes TDD with junit even faster.
SI-8087 keep annotations on mixed-in private[this] fields

Related to SI-2511 / eea7956, which fixed the same issue for non
`private[this]` fields.

If you have

    trait T { private[this] val f = 0 }
    class C extends T

Mixin geneartes an accessor method `T.f` with owner `T`. When
generating the field in `C`, the Mixin.mixinTraitMembers calls
`fAccessor.accessed`. The implementation of `accessed` does a lookup
for a member named `"f "` (note the space). The bug is that
`private[this]` fields are not renamed to have space
(`LOCAL_SUFFIX_STRING`) in their name, so the accessed was not found,
and no annotations were copied from it.
SI-8624 PriorityQueue documentation is not clear enough

Added a paragraph explaining that dequeue is the only way to get your elements in priority order.
Merge pull request #4010 from lrytz/t8087

SI-8087 keep annotations on mixed-in private[this] fields
Merge pull request #4008 from gourlaysama/wip/junit-2

Better ant / junit interaction
Merge pull request #4020 from Ichoran/issue/8624

SI-8624 PriorityQueue documentation is not clear enough
SI-4788 Respect RetentionPolicy of Java annotations

Also closes SI-5420 and SI-5948.