Add choices grouping using 'group by' expression

As described in #48, I've done options grouping.
Here is [plunker](http://plnkr.co/edit/qvVKhG?p=preview) where you can see this changes in action.
Maybe cleaner will be if we separate in 2 different structures, one for simple and other grouped cases. This way we can set special css and avoid having unnecessary tags. 
```html
<ul class="ui-select-choices ui-select-choices-content select2-results">
  <!-- Simple -->
  <li ng-if="!$select.isGrouped" class="ui-select-choices-row" ng-class="{'select2-highlighted': $select.activeIndex === $index}">
    <div class="select2-result-label ui-select-choices-row-inner"></div>
  </li>
  <!-- Grouped -->
  <li ng-if="!$select.isGrouped" class="ui-select-choices-group select2-result-with-children">
    <div class="ui-select-choices-group-label select2-result-label">{{$group}}</div>
    <ul class="select2-result-sub">
      <li class="ui-select-choices-row" ng-class="{'select2-highlighted': $select.isActive(this)}">
        <div class="select2-result-label ui-select-choices-row-inner"></div>
      </li>
    </ul>
  </li>
</ul>
```