Wip/h3nk3 shims

Moves the shim functionality from sbt-rc into Activator.

When generating project files there are multiple steps, some synchronous and some asynchronous. Therefore the implementation is sort of state machine (see generator.js). Lots of mutable state and other ugliness due to the fact that it is implemented in JS... The process still feels a bit brittle but I think it is good enough to start the discussions around.

Atm, the final step in the process does not work because of an issue with SbtConnector that I am investigating. Since the issue seems unrelated to this PR I want to go ahead with the PR anyhow to get feedback on what has been done. 

For review by @havocp and @Warry.

I guess this one relies for safety on modality, since it immediately assigns to globals; but if we have any async events or ajax, we could get events or replies back after the modal has been closed.

A way to make the whole file feel safer is to put all the state in an object, give it a close or shutdown method, then have a single global which is the current object:

```
var Generator = utils.Class("Generator", {
   // all the stuff in here
  init: function(args) {},
  whatever: function() {},
  close: function() { cleanup }
});
var theGenerator = null;
var startProcess = function(overrideExisting, projFile, projLocation, pluginContent, sbtCmd) {
   if (theGenerator !== null)
     theGenerator.close() // or throw error "another thing pending"?
  theGenerator = new Generator(overrideExisting, projFile, projLocation, pluginContent, sbtCmd);
  theGenerator.start();
};
```

Or something, hopefully you see what I mean.