<!--- Verify first that your feature was not already discussed on GitHub -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
elb_network_lb and elb_target_group should support UDP, currently only HTTP, HTTPS and TCP are supported by ansible.

Based on the current pages, UDP and TCP_UDP are supported as protocols:
- https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-listener.html
- https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
- elb_target_group
- elb_network_lb

##### ADDITIONAL INFORMATION
It would be useful to use UDP as a protocol for an NLB, additionally, attached target groups would need to support UDP.

TCP_UDP is another protocol that it would be useful to add support for (a port that would take TCP or UDP traffic and not care)

<!--- Paste example playbooks or commands between quotes below -->
```yaml
    - name: Create logstash target group
      elb_target_group:
        name: logstash_bunyan_production_tg
        protocol: udp
        port: 5600
        vpc_id: "{{ vpc_facts.vpcs[0].id }}"
        state: present

    - name: Create nlb
      elb_network_lb:
        name: logstash_nlb
        subnets: "{{ private_subnets + public_subnets }}"
        health_check_path: "/"
        health_check_port: "9600"
        health_check_protocol: "http"
        protocol: "udp"
        port: "5600"
        listeners:
          - Protocol: UDP
            Port: 5600
            DefaultActions:
              - Type: forward
                TargetGroupName: logstash_bunyan_production_tg
        state: present
```

<!--- HINT: You can also paste gist.github.com links for larger files -->

if module.params.get("targets"):
                if module.params.get("target_type") != "lambda":
                    params['Targets'] = module.params.get("targets")
                    
                    for target in params['Targets']:
                        target['Port'] = int(target.get('Port', module.params.get('port')))
                    current_instance_ids = []
                    for instance in current_targets['TargetHealthDescriptions']:
                        current_instance_ids.append(instance['Target']['Id'])
                    new_instance_ids = []
                    for instance in params['Targets']:
                        new_instance_ids.append(instance['Id'])
                    add_instances = set(new_instance_ids) - set(current_instance_ids)
                    if add_instances:
                        instances_to_add = []
                        for target in params['Targets']:
                            if target['Id'] in add_instances:
                                instances_to_add.append({'Id': target['Id'], 'Port': target['Port']})
                        changed = True
                        try:
                            connection.register_targets(TargetGroupArn=tg['TargetGroupArn'], Targets=instances_to_add)
                        except (botocore.exceptions.ClientError, botocore.exceptions.BotoCoreError) as e:
                            module.fail_json_aws(e, msg="Couldn't register targets")
                        if module.params.get("wait"):
                            status_achieved, registered_instances = wait_for_status(connection, module, tg['TargetGroupArn'], instances_to_add, 'healthy')
                            if not status_achieved:
                                module.fail_json(msg='Error waiting for target registration to be healthy - please check the AWS console')
                    remove_instances = set(current_instance_ids) - set(new_instance_ids)
                    if remove_instances:
                        instances_to_remove = []