use sender and receiver interfaces instead of abstract_client in many places
add tempest library and move file_handle class into it
separate files for tcp_client and interfaces