##### SUMMARY

If you try to re-release an elastic IP (ensure: absent) which has already been released ec2_eip throws an error rather than simply returning "ok".

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME

lib/ansible/modules/cloud/amazon/ec2_eip.py

##### ANSIBLE VERSION

devel

##### CONFIGURATION

N/A ansible-test

##### OS / ENVIRONMENT

N/A ansible-test

##### STEPS TO REPRODUCE

```
    #==================================================================
    # Allocation from a pool

    - name: allocate a new eip from a pool
      ec2_eip:
        state: present
        in_vpc: yes
        public_ipv4_pool: amazon
      register: eip 
    - ec2_eip_info:
      register: eip_info
    - assert:
        that:
          - eip is defined
          - eip is changed
          - eip.public_ip is defined and eip.public_ip != ""
          - eip.allocation_id is defined and eip.allocation_id != ""

    #==================================================================
    # EIP Deletion

    - name: Release eip 
      ec2_eip:
        state: absent
        public_ip: "{{ eip.public_ip }}"
      register: eip_release
    - ec2_eip_info:
      register: eip_info
    - assert:
        that:
          - eip_release is defined
          - eip_release is changed

    - name: Rerelease eip (no change)
      ec2_eip:
        state: absent
        public_ip: "{{ eip.public_ip }}"
      register: eip_release
    - ec2_eip_info:
      register: eip_info
    - assert:
        that:
          - eip_release is defined
          - eip_release is not changed
```

##### EXPECTED RESULTS

Play completes successfully

##### ACTUAL RESULTS
```
TASK [ec2_eip : Rerelease eip (no change)] *************************************
task path: /root/.ansible/test/tmp/ec2_eip-4v9k8sww-ÅÑŚÌβŁÈ/test/integration/targets/ec2_eip/tasks/main.yml:326
<testhost> ESTABLISH LOCAL CONNECTION FOR USER: root
<testhost> EXEC /bin/sh -c 'echo ~root && sleep 0'
<testhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1568552830.3837097-100844260545029 `" && echo ansible-tmp-1568552830.3837097-100844260545029="` echo /root/.ansible/tmp/ansible-tmp-1568552830.3837097-100844260545029 `" ) && sleep 0'
Using module file /root/ansible/lib/ansible/modules/cloud/amazon/ec2_eip.py
<testhost> PUT /root/.ansible/tmp/ansible-local-126l_udgy92/tmppojiib6x TO /root/.ansible/tmp/ansible-tmp-1568552830.3837097-100844260545029/AnsiballZ_ec2_eip.py
<testhost> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1568552830.3837097-100844260545029/ /root/.ansible/tmp/ansible-tmp-1568552830.3837097-100844260545029/AnsiballZ_ec2_eip.py && sleep 0'
<testhost> EXEC /bin/sh -c 'ANSIBLE_DEBUG_BOTOCORE_LOGS=True /tmp/python-tkg1ink4-ansible/python /root/.ansible/tmp/ansible-tmp-1568552830.3837097-100844260545029/AnsiballZ_ec2_eip.py && sleep 0'
<testhost> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1568552830.3837097-100844260545029/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "/tmp/ansible_ec2_eip_payload_jseaw6r8/ansible_ec2_eip_payload.zip/ansible/modules/cloud/amazon/ec2_eip.py", line 317, in find_address
  File "/tmp/ansible_ec2_eip_payload_jseaw6r8/ansible_ec2_eip_payload.zip/ansible/module_utils/aws/core.py", line 283, in deciding_wrapper
    return unwrapped(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/botocore/client.py", line 357, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/usr/local/lib/python3.6/dist-packages/botocore/client.py", line 661, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InvalidAddress.NotFound) when calling the DescribeAddresses operation: Address '52.43.70.125' not found.

fatal: [testhost]: FAILED! => {
    "boto3_version": "1.9.204",
    "botocore_version": "1.12.204",
    "changed": false,
    "error": {
        "code": "InvalidAddress.NotFound",
        "message": "Address '52.43.70.125' not found."
    },
    "invocation": {
        "module_args": {
            "allow_reassociation": false,
            "aws_access_key": "REDACTED",
            "aws_secret_key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "debug_botocore_endpoint_logs": true,
            "device_id": null,
            "ec2_url": null,
            "in_vpc": true,
            "private_ip_address": null,
            "profile": null,
            "public_ip": "52.43.70.125",
            "public_ipv4_pool": null,
            "region": "us-west-2",
            "release_on_disassociation": false,
            "reuse_existing_ip_allowed": false,
            "security_token": null,
            "state": "absent",
            "tag_name": null,
            "tag_value": null,
            "validate_certs": true,
            "wait_timeout": 300
        }
    },
    "msg": "Couldn't obtain list of existing Elastic IP addresses: An error occurred (InvalidAddress.NotFound) when calling the DescribeAddresses operation: Address '52.43.70.125' not found.",
    "resource_actions": [
        "ec2:DescribeAddresses"
    ],
    "response_metadata": {
        "http_headers": {
            "connection": "close",
            "date": "Sun, 15 Sep 2019 13:07:11 GMT",
            "server": "AmazonEC2",
            "transfer-encoding": "chunked"
        },
        "http_status_code": 400,
        "request_id": "c4b65cd8-02de-4503-af3a-0e498db40d53",
        "retry_attempts": 0
    }
}
```

""" Check if the elastic IP is currently associated with the device """
    address = find_address(ec2, module, address["PublicIp"], device_id, is_instance)
    if address:
        if is_instance:
            if "InstanceId" in address and address["InstanceId"] == device_id:
                return address
        else:
            if "NetworkInterfaceId" in address and address["NetworkInterfaceId"] == device_id:
                return address
    return False
def allocate_address(ec2, module, domain, reuse_existing_ip_allowed, check_mode, tag_dict=None, public_ipv4_pool=None):