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
Fix linting issues.
Define network_interfaces after the rebase
Merge pull request #12570 from bretep/eip-option-salt-cloud-rebased

Option to allocate & add elasitc IP to new instance