text option can be a function that returns html +other improvements

- text option can be a function that receives a collection of hidden li elements
- sets the dropdown control to the html of the selected dropdown item element
- adds better handling of li element events
- adds teardown method to turn off event handlers