(MODULES-439) Work around existing rules

The firewall resource is not intended to be used with rules that are not
also managed by puppet; the behavior when doing so was undefined. This
is an attempt to make it more defined.

The behavior is that any rule added by puppet will be inserted in its
given order in relation to the other rules managed by puppet, but ahead
of any rules not managed by puppet.
add support for removing unmanaged firewall rules
add specs for chain purge
Update specs and make compatible with 1.8.7

`.keep_if` is not in Ruby 1.8.7
The resource was trying to change from chain INPUT to OUTPUT which isn't
supported.
(MODULES-441) Helpfully fail when modifying chains

It is not intended for chains to be modified using the firewall
resource, but it would still try and result in obscure incorrect errors.
This raises a more helpful error
Merge pull request #286 from hunner/fix_source

(MODULES-439) Work around existing rules
Merge pull request #287 from hunner/purge

Add purge support to firewallchain
Merge pull request #288 from hunner/fail_chains

(MODULES-441) Helpfully fail when modifying chains
(MODULES-442) Correct boolean properties behavior

The boolean properties had a few things incorrect with them.

- Any value passed was considered `true`. This was compounded further by
  the next issue.
- When the read property was false, it was set to 'nil'. This caused
  `<property> => false` to not work after the previous was fixed.

Random other fixes to tests that were failing or poorly implemented are
also included
Merge pull request #291 from hunner/isfragment_fix

(MODULES-442) Correct boolean properties behavior
Rewrite this to make it clear the roles and profiles pattern would be
the better idea.
Merge pull request #294 from apenney/rolesandprofiles

WIP: Rewrite this to make it clear the roles and profiles pattern would be
(#21166) Add support the the iptables recent module.
Make rsource, rdest, reap and rttl known_booleans and remove munging.
Add unit and acceptance tests for the recent iptables module
Some documentation fixups and newvalues to make tests pass
Merge pull request #296 from hunner/ticket/21166-add_support_for_iptables-recent

(MODULES-31) add support for iptables recent
(MODULES-16) Correct src_range dst_range ordering

I wasn't able to reproduce the bug in testing, but several people were
able to and the proposed fix is a correct assumption.
Update the 'recent' module example with a more complete one linked to from the iptables man page.
Merge pull request #293 from hunner/range_fix

(MODULES-16) Correct src_range dst_range ordering