Added VPC tagging and ability to provision multiple VPCs with the same CIDR

Built-in tagging support a la ```ec2```'s ```instance_tags```.

This change also allows provisioning of multiple VPCs with the same CIDR blocks provided unique tags are used to differentiate between them.

The following two tasks will apply to two different VPCs:  

```YAML
- name: "Create Virtual Private Cloud (VPC) - DEV"
  local_action:
    module: ec2_vpc
    resource_tags: { "Environment":"DEV" }
    state: present
    region: us-east-1
    cidr_block: 10.0.0.0/16
    ...
```

```YAML
- name: "Create Virtual Private Cloud (VPC) - DEMO"
  local_action:
    module: ec2_vpc
    resource_tags: { "Environment":"DEMO", "BillingCode":"XXM1234"}
    state: present
    region: us-east-1
    cidr_block: 10.0.0.0/16
    ...
``` 

In the above example, if CIDR/Tag combination does not exist new VPC will be created.  

~~*Note, that newly created VPCs will then need to be tagged in order to avoid creating a new VPC every time this task is played.  This module does not track or enforce uniqueness of tags across VPCs.*~~  

Newly created VPC will be tagged using tags from the ```resource_tags``` list.  Tags not on ```resource_tags``` list will be ignored.

Deleting a VPC by supplying a list of tags is also possible as long as its CIDR block is also provided:

```YAML
- name: "Delete Virtual Private Cloud (VPC) - DEV"
  local_action:
    module: ec2_vpc
    resource_tags: {"Environment": "DEV"}
    cidr_block: 10.0.0.0/16
    region: us-east-1
    state: absent
  register: env_vpc
```