Improve email address parsing

* strip semicolons off both name and address
* single strip call for each
* lower case the email address for consistency

I've also put named variables in for name and address to make the code more
readable.

Finally I got rid of an inner for loop that appeared to yield the same result
repeatedly.  The loop was:

    for w in addr[0].split(" ") + [addr[1]]:
        yield addr

As w wasn't used in the loop, that will just yield the same value each time.
If this was meant to do something else, please say.