Convert the delite code to use the ES6 promise API,
as shimmed by https://github.com/calvinmetcalf/lie.
Note that shim could be replaced by any equivalent shim, or by a plugin that only loads the shim if necessary, which would fully resolve ibm-js/sdk#5.

This includes one API change: events now have a setChild() method rather than a loadDeferred property.
setChild()'s parameter is either a plain object, or a thenable (aka Promise).
The change is because ES6 Promises don't have resolve() and reject() methods, so it makes sense for the event handler to specify the whole Promise.

Internally, the changes to match ES6 Promise spec are:

* Since ES6 Promises have no cancel() method, HasDropDown has code to manually cancel.
  You specify the resolve and reject code at the time the promise is created.
* when(...) --> Promise.resolve(...)

Other notes:

* DisplayContainer's show() and hide() methods were unnecessarily creating a Deferred. I refactored the code not to do that.
* Language of API doc, reference doc, and comments updated to not use the word "Deferred".