Implemented enable/disable breakpoints.

A few additional refactorings:

* removed shallow class BreakpointSupport that only added a layer in front of an actor
* added a decorator class to pimp some methods on breakpoint, for retrieving marker attributes

Fixed #1001289.
Grouped breakpoint-related classes in their own package.
Add semantic highlighting for symbols

This adds:
- Semantic highlighting support + test case for Symbols
- Symbol color option in the "Syntax Coloring" preferences

Scala symbols do not have their own representation by a Symbol
type stored in the AST. Thus, they are highlighted as methods because
internally they are only passed as the apply method of class scala.Symbol.

To avoid highlighting symbols as methods scalariform is used to parse
them correctly and to make it possible to give them their own color in
the preferences.

Fixes #1001364
Merge pull request #240 from sschaef/issue/semantic-highlighting-symbols

Add semantic highlighting for symbols
Better relevance metrics.

* Penalise completion proposals that don't have the same case as the existing prefix, so that
you won't get `Stream` coming before `string` if the user asks for completions after `str`.

* Prefer local definitions (local variables, local methods) over other members

Fix #1000485.
Don't wait for the indexer to finish when asking for completions, unless in testing mode.

This makes it much faster on large class paths, and it won't lose too much functionality (it only affects types that have not yet been imported), but would make it much snappier in bad cases.
Merge pull request #239 from dragos/issue/relevant-completions-1000485

Better relevance metrics.
Reformat and docs.
Correctly update project settings when the preferences change.

The `PropertyStore` class is a snapshot, and during the move to sbt 0.13 the storage
became a lazy-val, meaning we started to lose project settings.

Fixed #1001241
Fixed #1001267
Reviewer's feedback.
Merge pull request #238 from dragos/issue/disabled-breakpoints-1001289

Implemented enable/disable breakpoints. 
Breakpoints work even if referencing the wrong nested class

Now uses the name of the top level class as base name to set class prepare request.
This allow to put the breakpoint on any nested classes containing the line.

Fix #1001197, Re #1001367
Merge pull request #243 from skyluc/issue/breakpoint-in-delayed-init-1001197

Breakpoints work even if referencing the wrong nested class
Upgraded to the latest release version of AspectJ weaving.

Fixed #1001163.
Added FIXME note

If the ``companionActor`` is already dead (e.g, a VM Exception occurred at startup),
then the executing thread could be blocked forever.
Merge pull request #242 from dragos/issue/project-settings-1001241

Correctly update project settings when the preferences change.
Fixed ``TcpipSpy`` on Mac

It's pretty weird, but it looks like when the main TcpipSpy thread terminates, the
spawned ``in/outThread`` are also killed. This is extremely surprising, because
the ``TcpipSpy`` threads are not daemons!

Anyway, a couple of calls to ``join`` on the main Thread do the trick and now I
can spy on a remote debugging sessions. This is really useful!
Don't reuse a MarkOccurrences index if the global instance is not current anymore.

Cached indexes may survive longer than a presentation compiler (for instance, when compiler settings are
changed the presentation compiler restarts). This leads to wrong accesses to a "dead" compiler while using
the index.

Also switched to a weak reference in the cache. If there are many editors open, this can lead to
significant memory consumption (especially when the compiler is out-dated). Note that this is not
a memory leak, in the sense it won't grow unboundedly. As an optimization, we prefer to recompute
the index if the VM decides it needed to collect the index, instead of holding large chunks of
heap in the hope that it will still be useful.

Fixed #1001303.
Small refactoring in ``ScalaThread``

* Renamed ``ScalaThread.thread`` into ``ScalaThread.threadRef``
* No need to pass the ``threadRef`` to the ``ScalaThreadActor`` constructor.
Merge pull request #248 from dotta/refactoring/thread-ref

Small refactoring in ``ScalaThread``