Use module._entry_size() to get rule entry size.
Use xt_align() instead of ipt_align().
Add method Rule._save().

Now we call Rule._save() from Rule.save() to be able to simply override
this method in the IPv6 subclass. The only change is that save() passes
the ip attribute from the entry to _save().
Move kernel loading stuff to util.py.
Use xt functions instead of ipt_entry_{match,target}.
Use singleton xtable()s.
Implement xtables.__repr__().
Don't use global xtables object.

Instead instantiate an xtables instance in every Match/Target. We use
singleton xtables objects anyways.
Implement helper methods for Rule.

These hide the entry.ip instance, so an IPv6 subclass can override
these methods.
Add ip6tables support.
Import IPv6 classes automatically.
Add new test suite for Table6.
Add property Rule.tables.
Override Rule6.__eq__().
Override property Rule6.tables.
Fix Rule6 src/dst manipulation.
Add Rule6 test suite.
Merge IPv6 support.