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 put this here. I wonder if we should instead be passing the buffer down to the provider instead of extracting only the path and the text. For example, grammar or many other unforeseen items might be of interest to the provider.