A bunch of revampery in prep for packages.

Modes are annotated with @Mode so that we can efficiently scan all
FooMode.class files in a package to discover the names of all modes defined by
the package as well as their descriptions and dependencies.

Services will be similarly located, and automatically started when a mode needs
them.
Wired up scanning for annotated classes.

Right now we only scan the "built-in" package, but it will be trivial to start
scanning external packages once I sort out how the directory structure will
work there.

I kind of want just a single top-level directory for each package:

.../Packages/whitespace-mode
.../Packages/project-service
.../Packages/scaled-scala-mode

but the packages are actually identified by a version control URL, so it might
be better to have:

.../Packages/github.com/scaled/whitespace-mode
.../Packages/github.com/scaled/project-service
.../Packages/code.google.com/p/scaled-scala-mode

but if I do the latter, then I need some sort of marker file at the top-level
of each package. Now that I say this out loud, I realize that the latter
approach is clearly better and the marker file will be useful for other
reasons. Make it so!
More work on package manager, external packages.

We now expect packages to have a package.scaled file at their top-level, which
describes the package metadata and expresses the package dependencies (the
annotations no longer contain dependency information).

Work is needed on actually building packages, as well as downloading transitive
dependencies.
Whitespace mode moved into external package.
License update.
Some scaladoc fixes.

scaladoc continues to fail miserably when referencing overloaded methods. Thus
there are some warnings I cannot repair. They will hopefully just magically
resolve themselves in that imaginary future where someone on the scalac team
gives enough of a shit to fix the scaladoc bugs. Ha ha, I crack myself up.