rev kernel protocol version, and include it in message headers (as a string)
kernel_info versions are strings
pyin -> execute_input
pyout -> execute_result

nbformat and nbconvert are not affected
pyerr -> error
remove user_variables

leave only user_expressions
remove unused channel definitions from managerabc

they were moved to channelsabc, but the originals were never removed.
pass on msgspec doc with updates
support password in input_request
track parent in kernel

raw_input / getpass are not lambdas, but Kernel methods.
parent state is tracked in Kernel traitlets.
password key added to input_request
fix inprocess input request
handle getpass in terminal frontend
add utils.tokenutil for getting the token at a cursor offset
add object_inspect_text

in preparation for object_info_request returning formatted mime-bundle
update completion_ and objection_info_request

both requests take:

- code (up to full cell)
- cursor_pos (cursor offset in unicode characters)

and object_info_replies return a mime-bundle, instead of structured data
move banner to base InteractiveShell class
add banner to kernel_info_reply
add kernel banner to terminal and qt frontends
add implementation and implementation_version to kernel_info_reply