- The composer only enables its scroller once the text is taller than the
seven-line max, so it no longer flashes on every growth step.
- The composer re-asserts first responder only when canStealFocus is true;
it is off while a modal field or the sync overlay has the keyboard, so
typing in the edit dialog, search and sync fields no longer bounces back.
- The edit dialog is a ComposerView now: Return saves, Shift+Return inserts
a newline, Esc cancels, and paste uses the same path as the composer.
- Shift+Return never actually worked: returning false from doCommandBy does
not fall through to the default newline insertion, so the event died. The
newline is inserted explicitly and the Shift state comes from the keyDown.