Break out ec2 create() into smaller functions
Added remaining grains module functions to grains states
Change the mod_aggregate enable option
Add defaults for the state_aggregate config option
Properly ref set_del_all_vols_on_destroy variable
Linting
Merge pull request #12563 from techhat/ec2

Break out ec2 create() into smaller functions
Start the container before running bootstrap

This prevents the container from being started and stoped for every
command that is executed
Make ec2 list_nodes_min() more usable for deletion tasks
Allocate + Add elasitc IP to new instance

This allows an option to create an Elastic IP and assignin
it to an interface. This works with a single or multiple interfaces.

Example profile block

```yaml
network_interfaces:
    - DeviceIndex: 0
      allocate_new_eip: True
      delete_interface_on_terminate: True
      domain: vpc
      SubnetId: subnet-c73a93bd
      SecurityGroupId:
        - sg-e78e6785
```
Updates the ENI with desired settings
Merge pull request #12568 from techhat/ec2

Make ec2 list_nodes_min() more usable for deletion tasks
Fix linting issues.
Removed duplicate functionality in grains states
Fix unicode conditional in jinja template fixes #12564
Support non-string values
The MOCK_HOSTNAME is not sufficiently long to guarantee that it is
longer than the hostname on the current host.  Make it crazy long.
Define network_interfaces after the rebase
BUG: The MOCK_HOSTNAME is not sufficiently long.

Extend the MOCK_HOSTNAME for a better chance that it will be longer
than the actual hostname.
Merge pull request #12575 from hulu/unicode_jinja

Fix unicode conditional in jinja template fixes #12564