aggressively lower case idns

only lower case is allowed, but sometimes people have stored upper case
idns - in order to decode these, they need to be lower()ed after
punycode decoding in order to be a valid domain label.