extract frame sending protocol to a class
fix capture worker termination bug.
when disconnected from client, send_frame_worker stops but capture_worker don't stop
because capture_worker thread waits for capturing permission.
so when disconnection happens, notify it and wake up capture worker thread.
create encoded_frame_protocol and use in video_distribution_state