WIP Partially working. Still needs more corners rounded

TODO
- Figure out if this works on touch screens?
- Add license information to new classes
- Test in an NV build
- Revert Caret changes
- Fix caret blinking around images (blinks really high)
- IME overlay in safari is really broken