Two gale servers running:  "External" and "Internal", and two gates:
E->I and I->E.

External galed is visible from the wide net.  It accepts messages on
behalf of @dom.ain, and forwards them to the Internal server through
the E->I client.
Internal galed is only visible to the local net.  Clients connect to it, 
and appropriate messages are forwarded out through the I->E gate client.
It is vital that the two galeds do not connect directly, so the "domain
discovery" that galed does to establish its spanning tree must be
disabled for the Internal galed.  It is also required that internal
clients not connect to the External galed.

The g3w.c contains the gateway client, which ferries the specified 
categories between the E and I servers.  It adds a gateway/$GALE_DOMAIN
fragment to the message, to detect already-gatewayed messages.

The loop avoidance mechanism for directed categories is more complicated.
To prevent the second galed from repropigating the message to its
directed server, the gateway client negates the category for all
directed categories that don't match its subscription list.

The gale codebase is inelegantly patched so that only galed will perform
the gale. / .gale.org expansion of domains (all the clients should use
GALE_PROXY to get to the internal server), and galed can be made not to 
build a spanning tree for the local domain (-l option) to keep the internal
and external servers from talking directly.
