remove all begin/end_user_action
reimplement Selection.transform().
fix update_preferred_line_offset