Cleaned up EclipseSbtBuildManager.

* removed the indirection from SbtReporter to BuildReporter, which was a
  leftover from the refined build manager. No need to route through a compiler-based
  reporter anymore (and mapping back and forth between positions and severities)
* reorganized the file to start with fields and public methods
* moved all file operations to use IFile instead of compiler-based AbstractFile
Remove the build manager choice, since the refined build manager is long gone.
Additional test for builder, making sure we leave no stray error markers after undo.
Reinstate length for build error markers.

The Scala compiler uses offset positions, so errors are reported at
the starting position. We derive a length based on the identifier
at the given position, so that error markers have a non-zero length,
and look better in the UI.
Report remaining work based on the current and total work units.

The previous code was the original one, with no justification for
using `lastTotal` instead of the actual current work unit. Changed to
what seems more logical.