Switch to use htmlElement and reactjs

@joefitzgerald, This is the fixed branch.  I screwed it up real bad this morning trying to pull it out of the merge process.  I finished the merge and this should be the correct completion. 

Pay special attention to the select-list-element.  I still have the react component attached.  There are a couple weird things you will probably note.

First, the mouse events are kind of f'd up since they can't be attached using the react eventing.  This is because the editor will grab the event before it gets to the document where the react events get bound.
The other weird thing is the composition events in the input.  React can't bind these events so I had to bind them manually and report back the composition state to the model.

I wonder it would be better for us to just manage a single autocomplete, which was not tied to a specific view. Because we're using an overlay decoration to house the view, we can destroy the overlay and have the view destroyed automatically. We can do so whenever anyone changes focus away from an editor.