deliteful/Select initial version

This pull request implements https://github.com/ibm-js/deliteful/issues/111 (the issue contains some design information).

Accessibility tests done (found no issue):
* VoiceOver on iPhone iOS 7.1.
* Keyboard accessibility on latest Chrome/FF/IE10 on Win7.
* High Contrast on latest FF and IE10 on Win7.

Accessibility tests NOT yet done (will be done soon):
* Joss

Bidi: not yet considered.

Sample: I will add a basic one, but in the longer run there should be a unique sample for the form controls and the Select will be show-cased there. For now, tests/functional/Select.html can be used for seeing the widget in action.

Known issues:
* Some coding/design points are under discussion and/or marked with TODO in the code.
* Some rendering issues exist due to browser bugs such as:
  * Chrome/Win
    * https://code.google.com/p/chromium/issues/detail?id=4579
    * https://bugs.webkit.org/show_bug.cgi?id=28900
    * Wrong width (truncated label due to scrollbar)
    * Template binding works bidirectionally in all browsers for all properties except in Chrome 35/Win7 for the size property. (Will try to isolate a reduced test case.)
  * Chrome and FF / Win
    * Unneeded scrollbars (FF and Chrome/Win7, but not IE10/Win7...)
  * FF/Win
    * Slightly wrong height for multi-select because of the padding (ok on Chrome and IE10).
  * iOS 7.0.x broken with multi-select (luckily, fixed in iOS 7.1)
    * http://stackoverflow.com/questions/20039194/multiple-select-in-safari-ios-7
    * https://discussions.apple.com/message/23745665#23745665
    * https://discussions.apple.com/message/23607781#23607781
    * https://discussions.apple.com/thread/5563234

Remark: for now the ios and holo themes (which are low priority) are identical to the bootstrap theme.

Next steps:
* (of course) process feedback
* Further test cases.
* Quick basic sample (awaiting for a global form controls sample).
* More API doc improvements and user guide.
Well, might look safer indeed, but:
* My code follows the example code at https://github.com/ibm-js/delite/blob/master/docs/Selection.md#extending 
* The widget extends StoreMap which redefines `itemToRenderItem` which applies the mapping *and* and does `renderItem.id = store.getIdentity(item);`. That's why renderItem.id is actually equivalent to store.getIdentity(item). 
* The user isn't likely to totally override `itemToRenderItem` because this would defeat the purpose of StoreMap.
* Implementing it as you suggest would require to cope with the case the user sets widget.store to null, so say `return this.store ? this.store.getIdentity(renderItem) : renderItem.id;`

Just by the way, what would be the good name for the argument of my override of getIdentity()? `renderItem` as in https://github.com/ibm-js/delite/blob/master/docs/Selection.md#extending , or `item` as in the default empty implementation from delite/Selection itself? 

All in one, I hesitate on it - while I don't think it's something very important, if @cjolif or @wkeese have lights on it, it would be welcome.