Remove complicated test for nested dictionary key and merge into for-loop.

On each level: If the element is undefined, use an empty list. The `and`
makes the expression stop here, so sub-elements are not tested.
Corner-cases:
* ansible_local or ansible_local.tcpwrappers is defined, but not a dict:
  In this case, the next level will be undefined and give an empty list.
* ansible_local.tcpwrappers.ansible_controllers is defined, but not
  a dict: Will crash. But should not happen, because this fact it
  written as a list (see tcpwrappers.fact.j2)
Save testing if element is already in list.

The list is filtered by unique() later anyway.
Remove unnecessary test if just defined variable exists.

tcpwrappers_tpl_local_ansible_controllers_result is set just before,
so it is defined. And it is a list, so there is not need to test if it
is non-empty, as the for-stmt will just not loop if the list is empty.
Remove unnecessary test if `tcpwrappers_ansible_controllers` is defined.

This is defined as a default variable (see defaults/main.yml), so
it always exists. If added `or []` just for the case someone defines
tcpwrappers_ansible_controllers = False.
Save setting a variable which is used a single time.

And avoid long line, which is hard to read.
Apply same changes to tcpwrappers.fact.j2.
`ipwrap` data in tcpwrappers.fact.j2, too.

Seams to be a good thing to me.
Revert "`ipwrap` data in tcpwrappers.fact.j2, too."

Internal Ansible data shouldn't be filtered by ipwrap(), only the final
output of the Jinja templates in the relevant configuration files.

This reverts commit 74e595b3788a2b874b059c6feafd388a769e52e9.
Fix incorrect variable name after all changes
Another slight change to variable logic
Merge pull request #6 from drybjed/tcpwrappers-refactor

Refacotring of tcpwrappers templates