Adds a plugin. If the plugin object has already been added, this
is a no-op.

Plugins must have been added before the first container is started.
This is not checked, however. You are on the safe side when the
plugin is added in the create_processor factory method, or in
the post_add_hook of the processor.

add_admin setup: Allows to bind another RPC program to the admin
socket. The function setup will be called whenever a connection
to the admin socket is established, and this function can call
Rpc_server.bind to bind another RPC program. By default, only
the Admin interface is available as described in netplex_ctrl.x.

Note that this RPC server runs in the scope of the controller! No
additional process or thread is created.

The event system used by the controller. It must not be used
from a container.

method restart : unit -> unit

Initiates a restart of all containers: All threads/processes are
terminated and replaced by newly initialized ones.

method shutdown : unit -> unit

Initiates a shutdown of all containers. It is no longer possible
to add new services. When the shutdown has been completed,
the controller will terminate itself. Note that the shutdown is
performed asynchronously, i.e. this method returns immediately,
and the messaging required to do the shutdown is done in the
background.

method send_message : string -> string -> string array -> unit

send_message destination msgname msgargs: Sends a message to
destination. When this method returns, it is only ensured that
the receivers registered in the controller have been notified about
the message (so it can be made sure that any newly forked containers
know about the message). It is not guaranteed that the existing
containers are notified when this method returns. This can (and
usually will) happen at any time in the future.

let id = register_lever f: It is possible to register a function f
in the controller, and run it over the internal RPC interface from
any container. These functions are called levers. See
activate_lever below. See also
Netplex_cenv.Make_lever for a convenient way to create
and use levers.