New implementation of rebasing.

Supports rebasing a file to nothing: If the new base is blank,
the path is deleted from the analysis cache file. This is useful
for getting rid of JVM dependency info, which isn't portable and
can be unnecessary in practice, since people switch JVMs infrequently.

Uses partial functions, so we can distinguish between "I don't
match this path" and "I do match this path, and want to rebase it
to nothingness". This is a more elegant approach, since rebasings
are in fact just partial functions on the domain of paths.
Bugfix with mirroring the analysis after rebasing.
Don't resolve symlinks when splitting or rebasing.

It's not typically what you want - the symlinks may express
the very relationship your rebase is for, and this just
confuses things.

Tested with extensive split/merge/rebase sessions in Pants.
Update build to sbt 0.12.2
Update for latest sbt with default incremental compiler options
Clean up compile warnings
Reformat options declarations
Add command line options for new inc options
Update to scala 2.10.1
Remove jline dependency
Add checks in tests against zinc daemon already running
Move check for writable cache file to after usage options
Add jline.shutdownhook=false when running zinc without nailgun
Update to sbt-pgp 0.8
Update link to latest stable version in readme
Add note about multi-part scalac options to readme
Update readme: javac options are now passed with -C
Handle spaces in zinc directory path
Convert zinc.home path to windows under cygwin
Force jline unix terminal under cygwin