ReactDOMSelect makeover, fix edge-case inconsistencies and remove state