Adds selector utils we're currently using on Carnival

{TICKET}: (brief description / PR title)

Status: **Opened for visibility**
Reviewers: **@Bielousov @scalvert**

## Adds the following selector utils
- getSelectedOption: returns the selected option inside a select
- outerHeight: calculates the height of an element including margins and borders
- removeEmpty: removes empty elements in the same selection
- swap: swaps the selected element with a specified tag
- prevUntil: traverses siblings backwards and returns all that match a selector until a different element is met
- nextUntil: traverses siblings forwards and returns all that match a selector until a different element is met

## Tasks to complete before merging
- [ ] write tests
- [ ] update README

Seems to be because `val` will set or return a value, but it won't add the `selected` attribute to the corresponding option. This returns that option, regardless of whether the attribute is set or not.

@Bielousov correct me if I'm wrong please!