prevent NPE on classpath problems

I hope this fixes the NPE I'm seeing on the Scala compiler project
when I forget to set the SCALA_BASEDIR variable in linked resources.
(It also needs to be set in the "classpath variables" settings panel,
but when you forget that one you get a nice error in the error log.)

```
java.lang.NullPointerException
at scala.tools.eclipse.ClasspathManagement26357anonfun.apply(ClasspathManagement.scala:405)
at scala.tools.eclipse.ClasspathManagement26357anonfun.apply(ClasspathManagement.scala:404)
at scala.collection.immutable.List.foreach(List.scala:302)
at scala.tools.eclipse.ClasspathManagement.validateBinaryVersionsOnClasspath(ClasspathManagement.scala:404)
at scala.tools.eclipse.ClasspathManagement.checkClasspath(ClasspathManagement.scala:299)
at scala.tools.eclipse.ClasspathManagement.isClasspathValid(ClasspathManagement.scala:199)
at scala.tools.eclipse.ScalaProject.isClasspathValid(ScalaProject.scala:93)
at scala.tools.eclipse.ScalaBuilder.build(ScalaBuilder.scala:59)
at org.eclipse.core.internal.events.BuildManager.run(BuildManager.java:733)
```
Merge pull request #635 from adriaanm/npe

prevent NPE on classpath problems
Allow task tags to start with a special sign

The implementation of `CombinedWordRule` has changed insofar that a word
that is already read but not matched can now be rescanned by other
rules. Previously the word was associated with a default token.

Fixes #1000991
Refactorings in wizard components
Merge pull request #630 from sschaef/t-wizards-refactoring

Refactorings in wizard components
Merge pull request #633 from sschaef/t1000991-task-tags-with-special-start-sign

Allow task tags to start with a special sign
Add 'Xlint' and 'feature' to the compiler preference site

Both warnings are added to the standard section because
they are some of the most important ones.

Fixes #1002039
Merge pull request #637 from sschaef/t1002039-add-xlint-pref

Add 'Xlint' and 'feature' to the compiler preference site
Package structure reorganisation.

This commit keeps all filenames unchanged, but builds a cleaner
package structure of the IDE.

There are only 5 top-level packages now:
- core
- ui
- logger
- util
- refactoring

Code is split in internal and API packages. Note that this commit
only touches directories, and the API work (clean up, documentation,
interfaces) will follow.

The guideline was to keep related code together. The only exception is
 ui code, that is moved to its top-level package. Additional dimensions
 (for example, following Eclipse concepts like launchers or preferences
 would make it too hard to decide what goes where).

Two unused files were removed:

- JVMUtils
- util/Colors.scala

This organisation makes it easier to see duplicated functionality (like
several RegionOps implicit classes). However, to keep things simple, that work is delayed to follow up PRs, so code changes can be independently 
and easily reviewed.
Moved test files.
Updated package names and imports in sdt.core.
Updated imports/package declarations in tests.
Updated sdt.debug package structure and imports.
Updated debug and debug tests packages.
Updated the spy view.
Updated poms to point to the new location of test suite classes.