[WIP] Chosen version that doesn't rely on JS library

As per #1380, this is an in-progress implementation of Chosen that does not rely on any specific JavaScript framework, and hence can be used in any scenario.  It is currently unfinished and has some minor bugs around reopening of lists, but I felt it was worth getting a code review and feedback from the official developers at this point (as well as code contributions!).

At some point in the future, the jQuery version could be a small adapters over the top of this "native" version, just "plugging the holes" (by overriding internal methods and replacing native implementations with jQuery implementations), and providing a jQuery-friendly API to consume. This would significantly reduce the amount of code duplication.