def memcached(protocol, port_or_socket, args = '', client_options = {}, terminate_process: true)
      dc = MemcachedManager.start_and_flush_with_retry(port_or_socket, args, client_options.merge(protocol: protocol))
      yield dc, port_or_socket if block_given?
      memcached_kill(port_or_socket) if terminate_process
    end
Launches a memcached process with the specified arguments.  Takes
a block to which an initialized Dalli::Client and the port_or_socket
is passed.

port_or_socket - If numeric or numeric string, treated as a TCP port
on localhost.  If not, treated as a UNIX domain socket
args - Command line args passed to the memcached invocation
client_options - Options passed to the Dalli::Client on initialization
terminate_process - whether to terminate the memcached process on
exiting the block