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.