security_group fix for ingress rule idempotency

* If you had more than one security group ingress rule the second run
  would fail
* For instance running tests/create.pp twice would fail for the
  puppet-sg group
* Rather than grabbing the first group lets loop over them. This runs
  for me for the create test
Minor refactor to security_group create

 - Create the ec2_client for region once
New security group tests for ingress rules

 - Provide 2 new tests that demonstrate the ability to recreate a
   security group with the same values, without apply failing (fixed in
   prior commit).
 - Add a test demonstrating current limitation around mutating the
   ingress rules for a security group
 - Fix a bug with searching for a missing group via the call to
   find_group in the after(:all) - find_group throws an exception
   rather than returning nil, and accordingly this particular issue
   was never caught
Merge branch 'fix-big-with-multiple-ingress-groups'

* fix-big-with-multiple-ingress-groups:
  New security group tests for ingress rules
  Minor refactor to security_group create
  security_group fix for ingress rule idempotency

closes #28
Use the AWS SDK wait until rather than our own version

The SDK now supports waiting for status changes on some resources,
including instances. So swap out our implementation for the build-in
one.
Fix error message appearing in successful test runs

Rather than returning nil the function raises an exception, so check for
that expection to determine whether the group no longer exists.
Merge branch 'use-native-wait-until'

* use-native-wait-until:
  Fix error message appearing in successful test runs
  Use the AWS SDK wait until rather than our own version

closes #29