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.
Instead of clearing the arrays for each group and then deleting empty one, why not just always starting with a new  empty object for ctrl.groups?

Like this
```
      function updateGroups(items) {
        ctrl.groups = {};
        angular.forEach(items, function(item) {
          var groupFn = $scope.$eval(groupByExp);
          var groupValue = angular.isFunction(groupFn) ? groupFn(item) : item[groupFn];
          if(!ctrl.groups[groupValue]) {
            ctrl.groups[groupValue] = [item];
          }
          else {
            ctrl.groups[groupValue].push(item);
          }
        });
        setPlainItems(items);
      }
```