One-shot Testing for IPTables Rules

The `rule` provider in the iptables cookbook tried to test each new rules
individually, making multiple separate `iptables` calls each time. This
is very slow, and as the number of rules grows, this phase takes an
increasingly large proportion of the chef run.

We now use the `iptables-restore --test` functionality to test all the rules
in one shot. In case of a failure, we extract from the rule file the offending
line and include it in the error message displayed to the user.

Testing:
1. Introduce a syntax error in a rule. Run Chef. Verify it the Chef run fails
   and that the error message has the expected details. Verify that rules that
   were present prior to the run are still there.
2. Run Chef again without making further changes. Verify that it fails again.
3. Fix the syntax error, introduce another error. Run Chef, verify it now fails
   because of the new issue.
4. Fix error, verify that Chef run passes and that the rules are updated.
5. Run Chef again with no changes. Verify the run passes.