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.

Yeah i was going to suggest we look through some of the providers and get an idea as to the interfaces that they actually need access to here.  I like how this is initially limiting but it may be a pain point as the api morphs if we don't think ahead a bit.