Update test case.

Update test to trigger issue #20.
Preserve per-protocol family libxtables globals.

Libxtables uses quite a few global variables, and unfortunately there are
protocol-specific extensions using the same name for multiple protocols, e.g.
REJECT exists both for IPv4 and for IPv6.  Since registering/looking up an
extension is based on the name of the extension, this means the protocol whose
extension is registered first will prevent any further extensions with the
same name from registering.

Solution: save our per-protocol libxtables global variables every time after
we returned from a call into libxtables, and restore them before calling
again. We're using singleton xtables instances for each protocol family, so we
can manage that on a per-instance basis.

However, extensions with AF_UNSPEC are only registered once, for the first
protocol that uses them. Call their init function manually to force them to
register to our protocol family as well, but record each loaded extension.
This is necessary, since xtables will just exit() if it finds that an
extension has already been registered.