Removed iptables stuff, introduced features and cleaned up docs & validation.
I've removed a lot of iptables specific stuff from the type, also
allowed any chain to be defined in :chain or :jump so we can support
user chains.
A lot of the documentation for the type has been cleaned up a little
and validation has been simplified where applicable.
This commit brings in the usage of features so we can start to introduce
more backend providers. The work is just a start for now and will
probably radically change once we have other working providers in
place.