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.

Well none of them use it today because I only added it on the weekend; but my hope is that we can decouple providers from editors (and the view from editors), and maintain a mapping of providers > scopes. Because the providers would no longer be hanging onto an editor, they'd need to know about the buffer they are operating against. So I added it.