Temporary fix for custom runners to load
Added remaining grains module functions to grains states
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.
Removed duplicate functionality in grains states
Proper fix for modules lazyloader

This fixes #12561
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
Merge pull request #12578 from plastikos/bug-longer_mock_hostname

BUG: longer MOCK_HOSTNAME is not sufficiently long
fix typo in modules.lxc._rand_cpu_str()
Merge pull request #12579 from cvrebert/patch-1

fix typo in modules.lxc._rand_cpu_str()
Merge pull request #12570 from bretep/eip-option-salt-cloud-rebased

Option to allocate & add elasitc IP to new instance
Merge pull request #12574 from makinacorpus/tfix2

Proper fix for modules lazyloader
Merge pull request #12565 from rallytime/grain_states

Added remaining grains module functions to grains states
Make `salt_import` available to pyobjects rendered files