Switch to the Sbt transactional classfile manager.

This involved moving away from the Java interface for passing inputs to
Sbt, since it didn't support passing true IncrementalOptions. This PR
mimics what Zinc is doing.

A couple of cleanups:

- no more pendingSources (it was a workaround the missing transactional feature)
- clear all problem markers when building a project. Until now we removed when each
file started compiling, but Sbt is guaranteed to issue all errors for
a given project. This way we don't have *stale* error markers (a file that
shouldn't have errors, but wasn't recompiled by Sbt).

Fixed #1001953.
More explanatory comments, thanks @gkossakowski!
Merge pull request #679 from huitseeker/pr/670

Use Sbt transactional classfile writer