Revamped Completer to control of completion order.

Forcing things to be sorted removed a completer's ability to be smart about
ordering (i.e. returning the most likely completion at the top).
Added method for rolling up a file.
Note re: servicification.
Add (temp) scala-xml depend, scm block.
More project services bits, starting on compile API.

I'm leaning toward a bunch of special purpose interfaces for different aspects
of the "assisted coding" experience.

This first one is a batch-ish compiler interface that will be triggered on file
save and will be easiest to implement for not-so-tightly integrated build
systems, but will also work for fancier integrations, at higher speed.
Added Mode.note/unnote for resource management.

This also makes dispose() non-abstract and have a useful default
implementation.