Bring new sbt services using the event stream api

removes the old sbt.js apis. Now, you have to use the new Websocket and EventStram API

```js
define(['commons/websocket', 'commons/types'], function(websocket, types){

  var stdout = ko.observableArray([]);
  websocket
    .subscribe({ type: 'sbt', subType: 'LogEvent', event: { entry: { message: String, type: "stdout" } } })
    .each(function(message){
      stdout.push(message);
    });

})
```


the real logic needed here is sort of complicated and annoying (see previous build.js); we want to pick the first one only if mainClass is not set, otherwise we use the value from mainClass... and discoveredMainClasses can be empty, so you have to check that here before using the first element. Look at the old build.js code that came up with this value maybe.