ComboBox: first rough implementation (implements #112)

The PR contains an initial implementation of a ComboBox widget (see task #112), as a complementary widget of deliteful/Select.

Remarks:
* The short-term purpose of this PR is to allow getting a feeling about the current state of the widget. 
* For now, it only contains the widget code and theme, and a manual test file for the programmatic and markup use cases. 
* Should be added shortly: some minimal unit and functional automatic testing, user documentation (including jsfiddle), a small sample, and general code and API doc fixes and improvements.
* As agreed, keyboard navigation support will be added in the next development cycle (will create an issue to keep track of it).

Prerequisites:
* ibm-js/delite/pull/310 ("dialog" stuff).
* #334 (store custom element support)

Workarounds (for now):
* In the longer run, #341 (List styling issues) is also a prerequisite, but for now the PR adds by itself the pieces of this PR which it needs (such that we don't depend on #341 for now).
* ibm-js/delite/issues/317 is workarounded in this PR for now.
* A (dirty) workaround for an issue with bad pairing in List of the busy on/off state (apparently related with List.attachedCallback breaking the automatic chaining - see the code around https://github.com/ibm-js/deliteful/pull/344/files#diff-9d795a38517bb5a35c96adbcc5ec431bR426 - will enter an issue when I'll have time to produce a reduced sample reproducing).

Known issues:
* Various cosmetic and ergonomic glitches here and there...
* On mobile, popup sizing/position and scrolling issues as reported in ibm-js/delite/pull/310.


For a better flexibility I was expecting to separate as much as possible the various channels implementations. Something along those lines:

ComboBox.js:
```js
define(["...", "requirejs-dplugins/has!desktop-channel?DesktopImpl:MobileImpl"], function(..., Impl) {
   register("element", [...., Impl], {
   });
}
```