Remove the securitygroup autorequire
Remove the securitygroup autorequire

Without this change, it is not possible for security groups to use other
security groups in a circular fashion due to creating a dependency loop
in Puppet.  As of the following commit, we no longer fail when a
security group reference to another security group is not found, and
instead simply throw a warning and drop the rule's inclusion in the
rule set.

    bd0ac4b5e3e6df864dc04ac2318d0931b92de64e

This now means that two security groups that have not yet been created,
can be set to reference eachother, but will take two runs to be
accurate.  The first run to create the security groups, which will skip
the rules that reference the currently nonexistent security group peers,
and the second run to set the reference rules correctly.

This now opens up the potential for circular dependencies.

    Ec2_securitygroup {
      ensure => present,
      region => 'us-west-2',
      vpc    => 'Z',
    }

    ec2_securitygroup { 'first':
      description => 'first',
      ingress     => [{'port' => '666', 'protocol' => 'tcp', 'security_group' => 'second'}],
    }
    ec2_securitygroup { 'second':
      description => 'second',
      ingress     => [{'port' => '666', 'protocol' => 'tcp', 'security_group' => 'third'}],
    }
    ec2_securitygroup { 'third':
      description => 'thrid',
      ingress     => [{'port' => '666', 'protocol' => 'tcp', 'security_group' => 'first'}],
    }

This is a valid use case for security groups, but not in Puppet.  This is now
only possible to function in this way because we skip security group references
that don't exist.  However, this now means that the autorequire rules will
create a circular dependency and fail to deploy.

Here we remove the autorequire from the securitygroup type for other security
group references  to allow the above scenario to complete the catalog compile
and manage the groups as needed completely.  This solves both the case of
creation of groups that don't exist, but are referenced in other security
groups, as well as circular group references, without causing puppet to loop.

daveseff/puppetlabs-aws,gregohardy/puppetlabs-aws,zleswomp/puppetlabs-aws,gregohardy/puppetlabs-aws,daveseff/puppetlabs-aws,marksyme/puppetlabs-aws,zleswomp/puppetlabs-aws,puppetlabs/puppetlabs-aws,hundredacres/puppetlabs-aws,hundredacres/puppetlabs-aws,marksyme/puppetlabs-aws,puppetlabs/puppetlabs-aws