Refactor TextEditorComponent and TextEditorWithNonEditableComponent

- Use of `contentEditable` for non editable pills.
- All tests for TextEditorComponent are passing

This has some side effects ( caret moves weirdly in some cases ).