fix(select): Fix several issues when moving options between groups

* When an option was moved to a previous group, the group that loose the option would remove the label from the controller
* When an entire option group was removed, the options in the group were mot removed from the controller
do you actually want to make this assertions on the controller level? why not on the DOM level?

what if you created a helper function that would assert the state of the select DOM tree. something like:

`expect(element).toBeSelectWithOptions(['D', 'E', 'A'])` I think we might even have such helper somewhere.

For groups it could look like:

`expect(element).toBeSelectWithOptions({group1: ['D', 'E'], group2: ['A']})`