Mechanism for creating custom semantic annotations

This mechanism is based on custom reconciliers (like implicit
highlighting), and provides easy way to extends Scala IDE with ability to
annotate your own method calls.

Fixes #1001989
Constructor calls are no longer highlighted
Warnings removed
Appending to Seq fixed
Merge pull request #644 from afitz/semantic-annotations-1001989

Fix for #1001989
More robust handling of virtual files.

Don't crash the builder if a source file does not have a corresponding
Eclipse resource.

Fix #1002073