CLI: TCPF: modify tcpf_action_send_data_frame()

So it can send both data frame types: DRQS and DRSC
CLI: TCPF: Add separate functions to send data frames

Add send_data_frame_from_console() and send_empty_data_frame()
to prevent code duplication and make code cleaner.
CLI: TCPF: Add separate write buffer

This makes logic cleaner and excludes possible bugs in
further functionality. Read buffer is now used for reading
and parsing frames and write buffer holds any data to send.
CLI: TCPF: Fix and simplify tcpf_action_send_data_frame()

Pass buffer_desc structure directly to the function,
fix error checking.
CLI: TCPF: Add read_console() declaration, remove unused code
CLI: TCP: Remove unused variable 'bd'
CLI: TCP: Implement STDIN locking

Locking is needed to prevent reading from the terminal
where there is waiting for the acknowledge pending.
CLI: TCPF: Fix STDIN locking

Release STDIN when an empty DRSC frame received.
CLI: TCPF: Fix invalid command handling

Server must drop client if invalid command received.