ngui gargantuan PR

mostly renaming, adding comments, moving things around as per conversations with @nistala and @ajainarayanan ( cf #544 )

also includes Tenant form feature.

 
```then``` returns an object that has a ```catch``` function for which we can pass ```failure```? Can we write a little bit more easy-to-read?

Does ```$promise``` in angular has a syntax like regular promise something like,

```javascript
$promise
.then(function() {
...
})
.fail(function(exception) {
...
})
.fin(function (final) {
...
});
```

Or something like this mentioned in the docs https://docs.angularjs.org/api/ng/service/$q