Styling the dropdown and organizing code

The functions for getting the width of elements have been moved
into the utility module so they can be reused where needed.
Options can be selected now
Added focused state and "select2:opening" event