If we create a new HtmlEditor e = new HtmlEditor();
when we run e.getValue(), we get the value of the Rich Text Editor always, so if the user switches to the source editor, and clicks our Save button without switching back to the rich text editor, then their changes do not get saved.

Proposed solutions:
1. getValue() should figure out which editor mode you're using and get the HTML from that mode, not just from the RTE mode.
2. add a getEditingMode() method to allow us to figure out what editing mode the HtmlEditor is currently in, so we can decide if we want to pushValue() or syncValue() before getValue()