Added JSDoc documentation;
Removed first/last borders on menu items
Simplified label focussing and data management

data is now only stored with the select element to prevent unwanted
side effects when destroying elements, replace label focus management
with data-labelledby hook that can be manipulated by the host script;
added jsdoc comments;