Fix serialization in Sync.

The serialized structures there aren't part of an Analysis,
so they aren't interned.

TODO: Refactor InternedAnalysisFormats so that this is more
straightforward and less error-prone.  This commit is
a first-pass fix of the broken test.
Remove dead source file `F0.scala` from interface subproject.

It doesn't seem to be used anywhere.
Move TestCallback.scala to a directory matching its package name.
Fix unstable existential type names bug.

Fix the problem with unstable names synthesized for existential
types (declared with underscore syntax) by renaming type variables
to a scheme that is guaranteed to be stable no matter where given
the existential type appears.

The sheme we use are De Bruijn-like indices that capture both position
of type variable declarion within single existential type and nesting
level of nested existential type. This way we properly support nested
existential types by avoiding name clashes.

In general, we can perform renamings like that because type variables
declared in existential types are scoped to those types so the renaming
operation is local.

There's a specs2 unit test covering instability of existential types.
The test is included in compiler-interface project and the build
definition has been modified to enable building and executing tests
in compiler-interface project. Some dependencies has been modified:

  * compiler-interface project depends on api project for testing
    (test makes us of SameAPI)
  * dependency on junit has been introduced because it's needed
    for `@RunWith` annotation which declares that specs2 unit
    test should be ran with JUnitRunner

SameAPI has been modified to expose a method that allows us to
compare two definitions.

This commit also adds `ScalaCompilerForUnitTesting` class that allows
to compile a piece of Scala code and inspect information recorded
callbacks defined in  `AnalysisCallback` interface. That class uses
existing ConsoleLogger for logging. I considered doing the same for
ConsoleReporter. There's LoggingReporter defined which would fit our
usecase but it's defined in compile subproject that compiler-interface
doesn't depend on so we roll our own.

ScalaCompilerForUnit testing uses TestCallback from compiler-interface
subproject for recording information passed to callbacks. In order
to be able to access TestCallback from compiler-interface
subproject I had to tweak dependencies between interface and
compiler-interface so test classes from the former are visible in the
latter. I also modified the TestCallback itself to accumulate apis in
a HashMap instead of a buffer of tuples for easier lookup.

An integration test has been added which tests scenario
mentioned in #823.

This commit fixes #823.
Add SBT version to example path for credentials file

As of sbt 0.13, the credentials won't be found if they aren't within a version directory.
Docs: use programmatic version in global base directory
Flush ObjectOutputStreams after construction

This protects against deadlocks between the writing and reading end,
since the ObjectOutputStream constructor writes a header, but does not
flush, and the ObjectInputStream constructor reads the header, and
blocks until it's read.
avoid deadlock in ConsoleOut.systemOutOverwrite

System.out can be reset after being captured by `val lockObject`.
Then locking `lockObject` and calling `println()` could lead to a
deadlock.
Fix implementation of Relation.size.

Nothing was actually using it yet, fortunately.
Allow zinc to use InternedAnalysisFormats.
sbt-vaadin-plugin added to community plugins
Log socket accept errors when forking tests

If an exception is thrown when accepting a connection from a forked test
agent, currently I'm seeing that all that happens is SBT hangs with no
output.  Thread dumps show that the main process is waiting for the
agent to return, while the agent is waiting for the server to send it
something.

This change logs the exception, so that at least the error can be
googled.  It also cleans up the server socket.
update to ScalaCheck 1.11.0
Explicitly, optimistically close export streams early: workaround for #937

This is a temporary workaround: it assumes nothing else uses these streams later.
This condition is ok for 'export' and test streams, since these are unlikely to
reuse these streams.  However, the proper fix is for the TaskStreams methods
to be smarter- they could open in append mode if the stream was closed.  The
streams associated with a task could be optimistically closed after it finishes executing.
(Any task can write to another task's streams, which is why it is an optimization only.)
Continuation of previous commit's workaround for #937: close test streams early
Add pending test case for #958 (incremental compiler bug)

The ticket contains detailed description of the problem. The test case
just shows that if we set `incOptions := sbt.inc.IncOptions.Default`
then the incremental compiler doesn't recover from compiler errors
properly.
Docs: fix typo.  Fixes #951.
Merge remote-tracking branch 'gkossakowski/error-in-invalidated' into 0.13
Add in the ability to launch non xsbti.AppMain classes.

* Deprecate old mainClass method on appProvider
* Create entryPoint method which represnets class used to launch instead.
* Create PlainApplication to wrap static `main` methods.  Can return
  either Int, Exit or Unit.
* Detect supported 'plain' classes via reflection.
* Add new unit tests appropriate to the feature.
Allow specifying sbt.boot.properties as a URI

This allows straight forward system independent generation of the
property, since URIs are well specified and only support one file
separator.