TLD checks for common names and dnsnames.

As in title. There is small ugly part that TLD check for common name and dnsname looks pretty much the same, but I wasn't sure where I could extract it. I'm also not sure if my approach to checking whether a name is probably an address or not is correct (I'm converting name to idna and checking whether it contains [a-z0-9-.*] characters). I could add this python package: https://pypi.python.org/pypi/rfc3987, so it will be more advanced.   
Thought I said this yesterday, but apparently not: much of this code is identical to code above.

Refactor to share common code (not clear to me why there's any difference).