fixes for dependencies and freedom typing

The freedom object can be used both as a constructor and as a function; this makes it a bit tricky to know what the type of the freedom object is. A solution is to make the Freedom type a Thenable of the function that then gives the on/emit interface for constructed module. That's what this pull request does.
isn't it preferable to say
```javascript
var uproxyModule = new freedom('scripts/freedom-module.json', {...}).then(function(UProxy :Factory) {
  uProxyAppChannel = new UProxy();
})
```

* What types are needed to do this the right way as a constructor?
* don't use ```interface``` which is a reserved keyword.