cloud/ec2: extended id option to allow for idempotency based on attributes

As discussed on the mailing list and in the irc channel, the aws modules would ideally provide better support for idempotent operations.

This pull request implements extended support for idempotently provisioning ec2 instances using the ec2 module. The "id" option is extended. If id is set to "tags", "group", "group_id", or "image", then new instances will be provisioned only if there are not already count=N such instances with the specified attribute. For example, if
```yml
  instance_tags: '{"db":"postgres"}'
  id: tag
  count: 5
```
then new instances will be provisioned only if there are not already five instances with the tag db: postgres key-value pair.

An example is included in the `EXAMPLES` string.