make register_function etc free functions
simplify tcp_client::append with fast_variant